sqli-labs(17-22关)

知识点: 

  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的格式,从而出现格式错误,爆出错误

第十七关(Less-17):

  1.根据提示输入,返回结果是成功的更新密码

  2.进行抓包,得到post的内容uname=admin&passwd=admin&submit=Submit。显示正常。

  3.将密码随便更改。然后执行。显示结果正常。

  4.将用户名随意更改。执行。显示失败

  5.在本关中,我们要知道用户名,对密码处的值进行操作,才能进行下面的操作。

  6.爆出数据库名称,使用updatexml函数。执行成功,返回一个错误即为我们得到的第一个数据库名称。

  7.爆破表,以security为例。爆破出security库中的第一个表名称emalis

第十八关(Less-18):

  1.根据前几关得出,Less-18也是Post。抓包得到Post的内容uname=admin&passwd=admin&submit=Submit,执行成功,显示信息如图所示

  2.如果登陆错误,显示信息如图,显示登陆失败,但仍有ip,没有浏览器信息

   3.经检验,在username和password处无法进行注入,字符会被转义

   4.使用http头协议,先进行抓包。分析得,可以通过对IP地址和user agent信息进行注入

   5.对Less-18中的的文件内容进行修改,显示出当前库和uagent的查询语句

    6.更改后,重新执行。如图,可以对图中圈住的地方进行http头部注入

  7.使用bp抓包进行http头注入,分析得出它可能不是select语句,可能是属于insert 或者 update,并分析出其闭合方式为(‘’,‘’,‘’)

  8.使用 'or updatexml(1,concat(0x7e,(database())),1)or '1'='1,得到当前的数据库名称

  9.其余库、表、列的操作均相同

第十九关(Less-19):

  1.首先根据提示进行登录,输入admin,密码:admin,登陆成功,显示Referer信息

  2.输入错误密码,登陆失败,没有回显信息

  3.进行代码分析后得出,Less-19与Less-18类似,不同的是Less-19在Refere处进行注入,需要进行闭合操作,操作方法与Less-18的相同,参考Less-18

第二十关(Less-20):

  1.进行登录,输入admin,密码admin,登陆成功,显示cookie信息,登陆失败,则没有cookie信息

  2.经过分析可知,本关运用cookie注入。在登录之后,后台会将username放入cookie中,再次登录时,只要cookie没有过期,就会在cookie里面取值,进行查询

  3.正确登录并进行抓包,并检测其闭合方式,发现是单引号闭合

  4.使用union联合查询表名

第二十一关(Less-21):

  1.进行登录,登陆成功

  2.进行抓包,发现此关的cookie值是加密的

  3. 查看源码之后,发现cookie采用的base64加密,并且闭合方式为('')

  4.通过加密的方式,修改cookie,通过base64编码格式,讲') union select 1,2,3#进行加密为Jyl1bmlvbiBzZWxlY3QgMSwyLDMj。与Less-20不同的是此关进行了加密处理,其余均相同。

第二十二关(Less-22):

  1.本关与Less-21不同的是闭合方式不同,cookie同样采用加密处理

  2.通过修改cookie,发现本关闭合方式为""

  3.其余均与Less-21操作相同。

 

posted @ 2020-02-29 16:50  mxm$  阅读(989)  评论(0编辑  收藏  举报