php代码审计技巧_PHP代码审计(二)

熊海cms_v1.0之代码审计

ok!代码审计(一)已经介绍了环境安装以及审计之前的准备,,,,,

0x01 下载xhcmsv1.0源码

下载熊海cms源码,源码之家等都有,小心软件捆绑!!!下载地址[1] php代码审计需要准备的工具

•phpstudy•phpstrom 用途就不多说了,phpstrom比较好用,方便代码审计下断点以及跟进函数,phpstudy集成web服务以及mysql数据库也比较方便。

0x02 安装xhcms

安装成功提示如下

8f40a2fd2188605bc85b7bc1eb4c7217.png  

0x03 phpstrom配置php环境

前面的文章已经有环境安装,不在多介绍,唯一一点注意的就是php版本对应的xdebug要匹配。

0x04 Go

熊海cms已经能够正常访问了,自己手动测试一下,数据交互也都没有问题

0a33213ed62f4f568c60ba0b49734330.png  

成功搭建之后,无从下手的情况下,也可以黑盒测试去找漏洞,无论使用扫描器做漏扫,或者手工黑盒,这些都是可以的,有了代码,审计的方式也有不少。常用的代码审计工具,例如Seay审计工具或者Fortify审计工具都可以,不过Fortify需要lincese,有没有免费的不大清楚,有兴趣的可以找找,或者其它开源的工具,不再详细赘述,,,,

有了源码比较容易查看该cms的架构。

这里我先审计的是前端,简单看了一下sql语句,参数传递使用了函数addslashes,这个函数会产生宽字节注入,手动验证构造payload**?r=content&cid=5%27**

845956afaad988cd34446d27ace7e951.png  

下断点调试F7,url传入的参数“ ’ ”再传入的时候直接被函数addslashes转义为了“ ' ”,查看html的回显

24d5a44a51973ce811287f7f2038c662.png  

查看其它页面(例如:download.php)查询位置的参数传递,都是函数addslashes处理了传入的参数,可以判定该位置存在宽字节注入,给予报错型的,宽字节注入绕过反斜杠,,,,,,sqlmap验证一下

c2df39997ee9548470de752fe96bcb04.png  

这里主要审计后台登录框位置的代码,直接查看admin目录下的 login.php代码,下断点进行传参

65f4a47b8b4f563cebc724c656e206c1.png  

这里很容易理解,先校验传入的user是否正确,然后对password进行md5加密,跟数据库对应的user相对象的加密的password做验证

2297a892371e58a02f75bdb4220b0076.pngsql语句查询对$user进行查询,'$user'会联想到单引号闭合,进行尝试

user: admin

password:md5(admin)=21232f297a57a5a743894a0e4a801fc3

user:test

password:md5(test)=098f6bcd4621d373cade4e832627b4f6

729b8fda76da954e98f6c00ca40e06b6.png  

构造payload:

账号:test' union select 1,2,'test','098F6BCD4621D373CADE4E832627B4F6',5,6,7,8# 

密码:test 

账号:admin' union select 1,2,'test','21232f297a57a5a743894a0e4a801fc3',5,6,7,8# 

密码:admin

edb04376c222220dd382b2ca75fe583d.png  

可以看到传入的参数以及绕过登录,此位置存在万能密码登录,验证成功。当然该cms还有其它漏洞,xss、越权等,此处不再另做审计。

References

[1] 下载地址: https://www.mycodes.net/43/7855.htm"源码之家"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值