在一个百无聊赖的周三下午,还有半个钟头就要下班了,这时候赶紧准备一下,工作收收尾,我们的口号是在5点30准时打卡下班。在一切都收拾妥当发现还有20分钟,无聊的打开论坛决定水水贴,然后看到了一篇关于闲鱼诈骗网站的帖子,作者说是通过存储XSS加Flash钓鱼拿下的,然后在最后给了一个小程序说是运行就可以获取网站用户密码。这么神奇的?作者没有公开漏洞细节,极不情愿的我又打开了工具……
搭建本地测试环境
时间紧任务重,在帖子中拿到源码,赶紧搭个测试网站一探究竟。
先找到数据库用户密码,这里可以用everything搜一下。
看到Conn.php文件,有点经验的大佬一看就知道数据库连接密码应该就在这里了。
将附带的数据库文件导入数据库,为了避免一切踩坑,按照数据库配置文件的要求新建数据库用户。
再用PHPStudy(不要在网上下载老版本,下载了也记得要替换相关dll文件,毕竟有后门,下载最新版的应该没事吧毕竟还没爆出来漏洞姑且认为他安全)搭建网站,访问之。
登录抓包,看我在返回包里发现了什么,Cookie中竟然有一条 Aname=admin 。
真的是毫无套路。
漏洞复现
在抓取exe数据包的时候,看它的报错信息,是Python打包的exe程序。
一开始想着反编译exe,但是反编译后发现是.pyd文件,难度太大,关键是不会,放弃。
再看它明显直接访问了/admin.php/admin/?Admin=Admin_List。
也可以抓取exe数据包看看,毕竟它肯定走的是HTTP(s)协议。
经过简单的分析,可以知道该URL为管理员列表,可以猜测作者应该是拼接了Cookie之后,直接访问获取的用户名密码。
所以我们的目的其实已经达到了。
无聊的代码审计
但既然拿到了源代码,怎么也得审计一下。
全局查找Cookie,直接定位到admin_login.func.php文件。
逻辑很简单,在通过SQL检查后用会调用 _Asetcookies 函数。
将用户名作为Cookie的一部分写入。
在admin_cookie.inc.php文件第14行,会根据Cookie提供的值来和数据库中的用户名比对是否存在。
那么接下来就简单了,我们直接拼接Cookie就得了。
毫无套路的闲鱼诈骗网站,但是也不排除黑吃黑。
毕竟城市套路深,农村路更滑。
随手捡个SQL注入
闲来无事,想着再看看有没有存在别的漏洞,一般这种站最好的是SQL注入了。
在check.class.php文件中发现防注入的代码逻辑,但它这个防注入应该只是针对后台登录界面的,所以我们可以寻找别的存在参数查询的地方。
在detail/pay1.php文件第24行,发现传入进来的参数直接进行了拼接。
浏览器访问一下,果然存在回显的字符型注入。
马上要下班了,直接拉出SQLMap跑一下,代理到BurpSuite可以看到生成的Payload。
很明显,已经注入成功了。
网站中应该还存在别的注入点,交给有缘人去研究吧,毕竟我只是个练习时长两周半的信安实习生。
总结一下
这种漏洞其实常出现在一些小网站上,比如下面的例子(资料全部整理于互联网,如有侵权,请及时告知删除),看到Set-Cookie中的值很像手机号,通过替换存在的手机号就可以登录任意用户。
当然也可以提供一种其他姿势,有些Cookie虽然不可预知,但是由于Cookie间的校验不严格、验证码的校验问题导致任意账户重置。
最后给大家一个忠告:年底了,骗子也要拼业绩的,毕竟市场经济嘛,谁都想年底有个好业绩。
不要轻信天上掉馅饼的事情,用远远低于市场的价格把东西卖给你,并且催促你赶快付款,难道就不觉得可疑吗?
下班了下班了,时间刚刚好。
参考
1. https://www.t00ls.net/thread-54636-1-1.html
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论