返回顶部

字符型注入

在天上飘了有段时间了得沉淀一下,我用的是sql_libs靶场

重新系统化学习一下手工注入(虽然有SQLmap一把梭)

核心纲要(b站视频https://www.bilibili.com/video/av77851975?p=4

 

 

一.字符型注入(less-4)

 

 id = 1时

 id=2时

可见这参数我们可控

下面就是让他报错,双引号 让他报错

 

 可以看见我们的参数是被双引号包裹

 

 加一个#把后面那个双引号注释掉,依旧报错

 

 因为报错后面有个单括号所以我们除了要注释引号还得闭合单括号,为了让语句闭合 才能执行 (#号 url编码之后就是%23)也可以用--+

 

 

用order by 猜查询出当前数据库的列数,这里拓展一下https://segmentfault.com/a/1190000002655427

 

 

 然后select123

 

 于是就可以查询当前数据库

 

 知道数据库 我们就查一下当前是数据库的表,表就是table_name,所有的表就是group-concat(),从哪里查呢 从information_schema.tables ,限定条件就是我们当前数据库

因为我们只需要查询当前数据库的表就行了所以 where table_schema = database()

 

 我们现在再来看一下 emails表column里面有哪些字段(列数)

只要把table改为column,另外加上新的限定条件,where table_schema = database() and table_name = 'emails'

所以就是这样select 1,group_concat(column_name),3 from information_schema.columns where table_schema = database() and table_name = 'emails' %23

 

 现在我们知道这个表里面的字段(列数),我们就来看看字段里面的值只需要把group_concat(column_name)改为group_concat(concat_ws(':',id,email_id))

from 后面也得改掉 改为from emails

 

 可以看见已经拿到用户名和id了

 

posted @ 2020-03-12 23:24  cat47  阅读(1022)  评论(0编辑  收藏  举报