sqlmap注入,sqlmap注入攻击

http://www.itjxue.com  2023-01-14 20:39  来源:未知  点击次数: 

sqlmap怎么注入sql server

当给sqlmap这么一个url的时候,它会:

1、判断可注入的参数

2、判断可以用那种SQL注入技术来注入

3、识别出哪种数据库

4、根据用户选择,读取哪些数据

sqlmap支持五种不同的注入模式:

1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。

2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。

3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。

4、联合查询注入,可以使用union的情况下的注入。

5、堆查询注入,可以同时执行多条语句的执行时的注入。

sqlmap支持的数据库有:

MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB

可以提供一个简单的URL,Burp或WebScarab请求日志文件,文本文档中的完整http请求或者Google的搜索,匹配出结果页面,也可以自己定义一个正则来判断那个地址去测试。

测试GET参数,POST参数,HTTP Cookie参数,HTTP User-Agent头和HTTP Referer头来确认是否有SQL注入,它也可以指定用逗号分隔的列表的具体参数来测试。

SQLmap 指定参数注入

以下是一些小技巧

-p ad_groups(ad_groups是指定参数)

python sqlmap.py -r E:\ad.txt

-r 后跟的是指定文件,就是这个抓的这个接口的包,放在一个文件里。我是用burpsuite抓的。

文件目录:C:\Users\Administrator\AppData\Local\sqlmap\output

找到对应文件后,直接删除。

可能在对应的用户下,不一定是admin

也可在扫描的时候加--purge

ctfshow-SQL注入篇[Web201-Web213 sqlmap使用]

参考:

开始sqlmap的使用,提示使用 --refer 绕过refer检查:

注意,最后一句不加 --dump 会直接把数据写入文件中,不显示在终端上。

提示如下:

提示如下:

提示需要api鉴权:

可以看到,每次请求之前会进行如下url的调用:

最终的命令如下:

提示我们需要闭合:

查询语句中也的确是这样的:

不过sqlmap会帮我们处理这个,所以不需要在意,命令和上一题一样:

对传入的参数开始过滤了,使用tamper应对。

这一题过滤了空格,可以使用注释进行绕过,使用sqlmap自带的space2comment.py进行绕过:

space2comment.py如下:

当然也可以使用 %09 之类的来进行绕过。

对小写的 select 和空格进行了绕过,不过sqlmap中的select都是大写的,所以和上一题一样即可:

过滤了空格,*号和等号,使用 %09 绕过空格,使用 like 绕过等号,基于此改一下tamper即可:

命令如下:

base64和反转字符串连着来,按着逻辑写脚本即可:

命令如下:

多加了一个空格过滤,用注释绕过:

命令如下:

除了base64和反转字符串,还过滤了空格和*号,那么使用 %09 绕过空格:

命令如下:

提示了使用 --os-shell :

–os-shell 其本质是写入两个shell文件,其中一个可以命令执行,另一个则是可以让我们上传文件;

不过也是有限制的,上传文件我们需要受到两个条件的限制,一个是网站的绝对路径,另一个则是导入导出的权限

在mysql中,由 secure_file_priv 参数来控制导入导出权限,该参数后面为null时,则表示不允许导入导出;如果是一个文件夹,则表示仅能在这个文件夹中导入导出;如果参数后面为空,也就是没有值时,则表示在任何文件夹都能导入导出

命令如下:

如图,获得了shell:

上图中出现了两个php文件,分别是tmpbvrci.php和tmpuuvbo.php,这就是前面所提到的sqlmap上传的两个shell文件。

tmpbvrci.php用于命令执行:

而tmpuuvbo.php用于文件上传:

获得flag:

(责任编辑:IT教学网)

更多

推荐HTML/Xhtml文章