• CTF--Web安全--SQL注入之Post-Union注入


    一、手动POST注入实现绕过 账号密码检测

    我们利用sqli-labs/Less-11靶场来进行演示:

    我们可以看到一个登录页面

    打开Less-11的根目录,我们打开页面的源代码(PHP实现)。

     用VS-code打开文件,找到验证登录信息的代码行。

    此形式的代码存在POST注入漏洞。我们可以注入一句万能密码。

    admin' or 1=1#

    单看这句代码可能不是很直观,我们将这句万能密码写到源代码中进行观察。

    @$sql="SELECT username, password FROM users WHERE username='admin' or 1=1 #' and password='$passwd' LIMIT 0,1";

    此时这条SQL语句WHERE后面只有一句有效语句:username='admin' or 1=1,因为 # 在SQL语句中起到注释的作用,username='admin' 和 1=1 二者只要其中有一条成立,那么身份验证就会通过,密码不管填什么都没有关系,因为 # 将密码检测给注释掉了,故不会进行密码检测,账号和密码登录就可以被我们完美绕过了。

    如图->利用注入登


    二、手动POST注入获取数据库信息

    首先打开HackBar,Load导入URL,使用POST方法注入(Use post method)。

    利用group by number测试出字段数。

    当group by 3时,显示错误:

    当group by 2时,显示成功,由此可以获得字段数为2:

    获取字段数之后,我们就可以进行POST-Union注入了。首先查看回显位。

    找到回显位之后,我们就可以利用回显位来显示数据库的信息,首先查看数据库的库名。

    然后从security中获取表名。

    接着从user表中获取字段名称(columns)--id,username,password。

    最后,获取用户账号密码信息,并在回显位显示出来。


    三、利用sqlmap自动进行POST注入

    首先利用burpsuite抓包工具,抓取页面post信息。

    利用sqlmap命令语句,使用sqlmap自动检测,查找合适的注入点。

    sqlmap -r C:\Users\lenovo\Desktop\test.txt

    sqlmap会给我们列出所有的注入点,我们可以自行选择。

    最终利用sqlmap,可以获得用户数据。

  • 相关阅读:
    CentoS7 安装篇十二:mysql主从搭建(xtrackbackup不停机搭建)
    【计算机网络】以太网供电PoE - Power over Ethernet
    【KAWAKO】从mac上定时将腾讯云的数据备份到本地
    leetcode-每日一题-51.52-N皇后(困难,递归)
    shell脚本之双重循环
    PostCSS概述
    Python学习笔记-字符串
    失效的访问控制及漏洞复现
    pycharm简易使用码云gitee
    vue前端实现多个url下载并合并为zip文件
  • 原文地址:https://blog.csdn.net/2302_79800344/article/details/136054742