记一次无聊欣慰并且未完成的渗透经历

2020-04-10 15:26:15 66 11892 7
0x00 事件起因
也不知道是因为疫情还是怎么,最近赌博网站的广告满天飞,我朋友是个薅羊毛人士,就在那天下午….



当然我们都知道,三人行,必有我师。朋友说通过新用户注册送的20个体验金币玩到100即可提现,我去体验了一把,毕竟薅羊毛知识也是赚钱的本领。谁知道这是一个过渡过程,这是上瘾的特征,啊不行了我要充值一个亿。

我从20玩到60,又从60玩回20,又从20玩到60,又从60玩回20…..循环1w次后…我TM输完了,哈哈哈哈。

当我想要单机微信右上角的”x”图标时,我想了想,我叫什么名字,从东土大唐到打击非法网站,本僧既来之,则安之。手上的burpsuite微微颤抖着,屏幕前面的电脑格外的紧张刺激…三万老虎机…等等,暴露了点东西。


0x01 吃我一棍
想找点互动的地方,毕竟人与人之间存在一些交流的话心情也就好了,心情好了挖洞速度就上升了,挖洞速度上升了就有可能达到黑阔Helen的水平,上去直接点进去跟客服互动的界面,打了一发img标签的xss。



没想到客服的速度快如藏獒,这里成功打出来XSS。



当然我收到XSS时候,心里并没有那么激动。


0x02 吃我一菜刀

当然,这么显眼的地方存在一处存储型XSS这是新手程序员的标志,这个时候在提现功能的上传收款码部分成功的发现任意文件上传。



Burpsuite结果



随后菜刀砍之….


0x03 别动,webshell上的其他线索

Getwebshell之后当然整个过程索然无味,颤抖的burpsuite已经放回内裤当中。心里回想了一下整个无趣的过程,自己居然悲伤了起来。当然我渴望快乐,快乐的源泉是打击非法网站以及非法人士,然后在webshell中四处翻一下文件是否还能做点什么有趣的东西,于是我发现该非法网站同服务器上有其他站点。



这个时候我翻到了www.shabi.com(代替站点),可是当我把www.shabi.com放到浏览器上按下回车键的时候,www.shabi.com居然不存在,难道是域名过期了??
域名过期我就不了解你了吗,就像我们有时候也了解一下自己感兴趣的女人。女人越烦我们,我们越要追求,做一个名副其实的舔狗。

这个时候我翻到了www.shabi.com的配置文件,因为是非法站点,自己贸然的翻了一翻配置文件看一下这邪恶的非法网站背后存放着什么东西。



What Fuck???居然不是127.0.0.1。


0x04 对于站长的新站问候

这时我连接上该远程数据库后,翻了一下基于后台的数据库字段。



在mkcms_system数据表中发现了s_domain字段为www.shabi.vip。可好了,你com完再vip,可显着哥的域名比较多了。

随后我二话没说将数据库表名mkcms_system复制粘贴到百度,来使用谷歌hack匹配cms。



好家伙,前缀名就是cms的名称,既然来进行代码审计,我就下载了一个比较高的版本,低版本的mkcms可能被现代社会淘汰。


0x05 代码审计下的眼泪

因为目前本人已有数据库,所以翻到管理员的MD5进行后台解密。



不过当前是有权限插入一条新的记录的,所以说这里登陆不进去也不必太过悲伤。

随后打开源码审计了一部分倒是没有发现什么可以getshell的点(菜),后台的SQL注入倒是挺多的。

比如这一点:



虽然说$_GET、$_POST、$_COOKIE统统进行了函数addslashes过滤,可是没有引号依然可以进行SQL注入,下面的if语句告诉我们这是一处SQL盲注。



等等类似的盲注点….未挖掘到getshell漏洞……


0x06 审计中发现的前台XSS漏洞

这个时候肯定有水友会问笔者,你不是说要审计后台吗,怎么审计一半却挖出来前台的漏洞了。

当然,当我们可以挖掘到0day时,我们可能会暂时放下手中的心爱的站点来挖掘一下0day。

笔者发现该后台所登陆态验证的是使用cookie验证,并没有使用$_SESSION。可以看一下这个文件。

在admin/cms_check.php文件中,



这样的话打到cookie信息,也就是打到了admin表中的账号和密码字段。同时COOKIE的有效期是本地浏览器可以进行设置的,不用担心拿到cookie后过一段时间失效等问题。这样后台状态的生存周期是不用担心了。下面笔者就挖掘到了XSS漏洞来配合这一特点来对管理员进行亲切的问候。

在文件data/list.php中



本来以为是任意文件读取,但是下面的preg_match_all告诉我们并不存在任意文件读取。

当php.ini中的allow_url_fopen为On时,file_get_contents支持发送HTTP请求并且返回HTTP响应包的内容部分。



该配置项在php.ini中默认开启。



可以看到将筛选出来的内容无任何过滤直接带入到echo的内容当中,这个时候我我们可以自己构造出一个
<li  title='(.*?)' class='w-newfigure w-newfigure-180x287'><a href='(.*?)'  class='js-link'><div class='w-newfigure-imglink g-playicon js-playicon'> <img src='(.*?)' data-src='212'><script>alert(1)</script>' alt='212'  />
放在我们的WEB服务器上,因为是服务器端去获得我们的漏洞代码,并且$_GET[‘play’]也是需要放置一个base64字符串,这种的反射型XSS不会被浏览器的X-XSS-PROTECTION所过滤掉。

构造Payload:http://127.0.0.1/data/list.php?play=放置好的XSS代码网址的base64字符串

漏洞验证结果:



(PS:测试多个站点均存在该XSS漏洞)


0x07 转过头来继续绝望

0day也挖了,该绝望继续绝望,shell还是没拿到。



此时的我留下了没有技术的眼泪。

自评TCV:1

关于作者

heihu57757篇文章649篇回复

评论66次

要评论?请先  登录  或  注册