记录一次代码审计

开源cms:phpmywind5.6,虽然是一个已经被挖烂的cms,但还是挖了一个新的后台利用方式,再此记录一下本废物的经历。

从来不会代码审计,所以问了老哥们让他们推荐点cms练练手。

这边开了一个win7+phpenv来专门搭建靶机环境(这个phpstudy就是逊啦.jpg

图片[1]-记录一次代码审计-魔法少女雪殇

然后正常安装,没啥好说的,主要还是去审计代码

图片[2]-记录一次代码审计-魔法少女雪殇

本人是没什么审计经验,这也算是第一次审计一个大型的cms系统,幸好这个没有使用php框架,否则直接原地去世,所以直接用Seay自动审计找找一些入口弱点

图片[3]-记录一次代码审计-魔法少女雪殇

本人sql bypass能力实在是太菜了,百度上确实一堆堆的sql注入的洞,所以直接无视,转向其他

图片[4]-记录一次代码审计-魔法少女雪殇

我一直比较喜欢任意文件读取的漏洞,这个check_bom.php的话也算不上漏洞,但是确实可以进行一个目录穿越

图片[5]-记录一次代码审计-魔法少女雪殇

跟进一下,直接啥也没做限制,就是判断是否有BOM头(有一说一这个BOM很傻逼,在我开发后端的时候也多次搞我

图片[6]-记录一次代码审计-魔法少女雪殇

效果就是这样,但是可以进行一个目录穿越

图片[7]-记录一次代码审计-魔法少女雪殇

算不上漏洞,但是星宝说如果实际环境的话是可以记录报告的.jpg

下一个点,算是一个后台命令执行

图片[8]-记录一次代码审计-魔法少女雪殇

就很喜欢eval,可以看看他的函数

图片[9]-记录一次代码审计-魔法少女雪殇

就是直接进行一个eval,没有任何限制条件,跟一下看看谁调用了

图片[10]-记录一次代码审计-魔法少女雪殇
图片[11]-记录一次代码审计-魔法少女雪殇

这里是个查询的属于是,然后跟了一下语句,是有个列名为attrstr,倒是可以直接看看数据库里面的数据是什么样的

图片[12]-记录一次代码审计-魔法少女雪殇

array格式,属于是玩明白了

那就直接跟一下上面的attrstr这个字段,看看哪里写入了

图片[13]-记录一次代码审计-魔法少女雪殇

可以继续抓包看看

图片[14]-记录一次代码审计-魔法少女雪殇

大体就是写入然后拼接成array模式的字段

基本逻辑就是attrvalue值可控,但是他这个拼接,会把我attrvalue变量的值进行html编码化,进行安全防护了属于是

我是没想到有啥办法可以绕过,所以继续看看网站有什么其他点。

图片[15]-记录一次代码审计-魔法少女雪殇

所以自带sql语句执行就很牛逼,直接在attrvalue端写入相应的一句话就完事了呗,,,这你说的

图片[16]-记录一次代码审计-魔法少女雪殇
图片[17]-记录一次代码审计-魔法少女雪殇

当然,也可以直接写文件。。。但是如果sql限制了文件写入权限那就不行了

这个弄好之后会在商品列表出现新的商品,

图片[18]-记录一次代码审计-魔法少女雪殇
图片[19]-记录一次代码审计-魔法少女雪殇

然后就可以直接getshell了,,,当然反弹也可以,离谱就。

© 版权声明
THE END
喜欢就支持一下吧
点赞2 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情