前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三进三出 | 渗透测试

三进三出 | 渗透测试

作者头像
意大利的猫
发布2020-08-20 14:56:59
5990
发布2020-08-20 14:56:59
举报
文章被收录于专栏:漫流砂漫流砂

写了一个多月的各种方案,终于抽个空可以做点技术活了

测试一个单位,其中一个官网,点进去一看,质朴中透露着一股有问题的气息,看了一下架构:IIS+PHP,美妙的组合。

迅速定位到了一个点可能存在注入,但是,有waf:

这么老的站,没注入你设waf干嘛?此地无银三百两,肯定有注入,上网搜一下wts-waf,一搜发现,绕过很简单,空格改成 + 即可,于是乎,我尝试了一下:

???

还有限制,大概是因为 = ,改成 like:

成了啊,这不妥妥有注入?

Sqlmap一把梭

然后。。。

IP没了,sqlmap一片红。。。仿佛是目标在说

这封IP,是不是访问太多太快了?

写个脚本,sleep(3),慢点就慢点吧,暴个库名收工吧。结果还是封,那手注吧,于是我被waf锤了一下午,总结出一下边界触点:

  • 联合查询注入select后面不能跟字符
  • 不会报错
  • 时间盲注不能用sleep函数
  • 不能用/**/
  • %0a这一类会被拦截
  • 。。。。

第二天清早起床,拥抱阳光,我又觉得我行了,还是绕绕吧,手工fuzz一下关键词,结果发现一个神奇组合可以使用:--%0a

select后面跟上--%0a,即union select --%0a 1,2,3--+即可绕过:

感人肺腑

Union联合查询找到表:

于是通过这个方法,顺便花了一块钱解密md5,成功拿到后台管理员密码

在后台一顿乱翻,找到一个点可以上传文件:

和其他的上传点一样,这个上传点也是有很多限制的,比如只允许上传.jpg、会对上传内容做静态查杀,仔细去测试上传的包:

第一个filename是对上传文件进行命名,第二个attachPath,是上传路径,第三个是正常的上传核心内容,filename的值会决定后端如何比较文件内容

既然是IIS+PHP,肯定是先试试00截断,果然成了。。。

而且还真能访问到:

当然这是一个带着phpinfo的马,这是不是可以内网整整了?

现实当然没有这么简单,这么简单的话就不需要写这篇了,没过两分钟,马没了,00截断上传php文件也不行了。。。

再上传回包是:

从我这张全是马赛克的图里,老司机们应该能迅速反应过来,代码的后端逻辑其实是先将上传的文件重命名为x.tmp存在缓存文件夹中,再重命名为我们之前filename设定的名字移动到指定的web目录下。

所以对方应该是做了策略,使php文件无法在缓存文件夹下落地!

揣摩一下对方的思想,应该是黑名单吧?

那我试试 phtml、php3、php4、php5…

果然都不行。

我灵机一动

IIS的,传个ASPX试试,结果显示 “脚本不支持” ,传个asp,结果和传php一样。那就试试ashx、asmx、ascx、cer…

果然 cer可以:

然后:

第二天,马没了,密码改了,注入不行了,我哭了。。。

作为全公司最努力的致力于发展台球事业的员工,怎么能就此被打倒?

Fuzz一下sql注入,它把information_schema给?️了

???

由于某些不可抗力,后续无实际测试图,但是本地搭了个环境,写一下怎么做的去绕过这个规则:

payload:

-1 union select 1,`2`,1 from(select 1,2,3 union select * from user)a limit 1,1--+

这样就可以做到只要知道表名就可以不用information_schema注入出数据,那如果我之前就没有获取到表名呢?

那就使用 payload uid=1 and exists(select * from user1)--+

使用payload uid=1 and exists(select * from user)--+

配合上之前的绕过规则,再花一块钱,又可以获得管理员的密码了...

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 NOP Team 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档