码迷,mamicode.com
首页 > 数据库 > 详细

一个sql盲注小工具 (Golang版)

时间:2020-06-09 12:36:33      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:ima   roo   多少   延迟   fun   mic   定义   规则   是你   

并发,二分法判断。

源码写的有点垃圾,有点乱,结果也存在一些缺失。

记录:

sql:select distinct 中的distinct选项,这是只会获取你表中不重复数据,是表中,而不是你一次sql执行的结果显示中,原来一直记成一次执行结果中。

golang:

因为是并发,所以哪一位的字符先跑完是不能确定的,所以使用结构体,然后在对结构体排序,需要自定义排序规则。https://blog.csdn.net/qq_17308321/article/details/94998236

思路大概就是先判断长度,根据长度来开启多少个协程。对于表,就是先判断表的数目,开启多少个协程,在协程里面开启子协程,子协程也是先判断长度,在每一个字符开启一个协程。

对于循环导包的问题,直接copy了一份,重命名了一个包。

注入测试代码:

技术图片
<?php
$dbms=mysql;
$host=localhost;
$dbName=mysql;
$user=root;
$pass=root;
$dsn="$dbms:host=$host;dbname=$dbName";
try {
     $pdo = new PDO($dsn, $user, $pass);
} catch (PDOException $e) {
     echo $e;
}
$id = $_GET[id]?:0;
$sql = "select * from user where max_questions={$id}";
$stmt = $pdo->query($sql);
if($row=$stmt->fetch(PDO::FETCH_ASSOC)) {
    sleep(sleeptime());
    echo 1正确;
} else {
    sleep(sleeptime());
    echo 0;
}

function sleeptime(){
    $time = [0.5=>‘‘,1=>‘‘,1.5=>‘‘,2=>‘‘,2.5=>‘‘];
    return array_rand($time,1);    
}
View Code

使用的mysql数据库,随机延误0.5-2.5秒。(如果不延迟的话差不多7秒跑完)

测试效果如图:

技术图片

数据存在丢失,而且有些会超时,主要为了练手。

源码及exe:

链接: https://pan.baidu.com/s/13uYzA9CX8p_bx32pp_vZTw 提取码: a57a

一个sql盲注小工具 (Golang版)

标签:ima   roo   多少   延迟   fun   mic   定义   规则   是你   

原文地址:https://www.cnblogs.com/xiaozhiru/p/13071591.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!