less -11
写在前面(来自b站https://www.bilibili.com/video/av77851975?p=6)
、
先加个单引号让他报错
首先sql登陆后台的查询语句为select 1 from users where usename = ? and password = ?
我们得让usename和password 都为真 首先得闭合语句然后构造条件
select 1 from users where usename = ' ' or 1 %23' and password = ?
理解其中道理之后
我们就让他不报错
可以看见成功进入不报错
也可以这么hackbar post提交
然后使用ordey by获取后台列数,2不报错 3报错
然后我们在做联合查询
先让使用select version()获取版本号
可以看见报错 我们让他的信息显示完全一点
就用~ 和concat() 拼接 又因为~在一般注入中很多会把他过滤 所以我们用16进制0x7e
可以看出能显示后台完整的版本信息
这个时候我们再来查询表名 select table_name from information_schema.tables where table_schema = database()
可以看见太多了 不止一行 使用limit 0,1 (0意思是从第0行开始,1 的意思是偏移量为1,相当于查询下标志为0的一行)
再用limit 1,1 相当于查询下标志为1的一行
现在已经拿到数据库了
当然还可以不使用extractvalue ()
还可以使用updatexml()只不过他要三个参数 比如updatexml(1,...,1)