记一次某子域下的招聘网站代码审计
2021-09-22 本文已影响0人
thx_c619
朋友挖漏洞时,一不小心下到了源码,交给我代码审计一下
拿到代码,放入vscode,项目路径
![](https://img.haomeiwen.com/i13192223/7f53e4f2bf97a491.png)
先大致浏览一下文件,thinkphp,php版本,数据库备份文件但密码加密。
先搜索一下敏感的信息,一般连接mysql的变量一般为conn,于是搜索一下,发现文件写有连接信息,应该做了单独的配置文件
![](https://img.haomeiwen.com/i13192223/f5a1849b95175183.png)
继续搜索DB_PWD,得到数据库账户密码
![](https://img.haomeiwen.com/i13192223/6c0eefa024df1e8a.png)
连接phpmyadmin数据库,发现做了账户权限分离,只有子域网站的数据库。
![](https://img.haomeiwen.com/i13192223/3488b91aea9184d8.png)
查看admin表,发现其加密密码。放入MD5解密跑,没识别,估计是做了加盐,于是继续看代码。
![](https://img.haomeiwen.com/i13192223/93596f6725561fb5.png)
搜索admin,发现登录逻辑,加密密码就是这样来的,md5(md5(passwd)+盐1+盐2)。
![](https://img.haomeiwen.com/i13192223/832de0be09c90d30.png)
继续搜索变量盐1:pwd_hash,在数据库备份文件里面发现管理员表的关键字段pwd_hash,一开始有个默认的pwd_hash,现在能连接数据库,也就是能看到现在的密码加密后的pwd_hash(备份文件的pwd_hash和现在数据库的不一样)
![](https://img.haomeiwen.com/i13192223/086e26002850530b.png)
![](https://img.haomeiwen.com/i13192223/c50571463b7be29b.png)
继续搜索盐2:PWDHASH,发现是一个数组,对应的是一串字符串,应该就是加的盐2
![](https://img.haomeiwen.com/i13192223/9d47988f92a6614e.png)
前面加盐时还做了函数处理,所以是不知道是否还做了更改,于是深入搜索自定义函数C:function C
![](https://img.haomeiwen.com/i13192223/561e5d2563679999.png)
简要分析,这个函数的功能是做了一个类似获取配置的功能,就是输入变量,获取配置。所以上面加盐的操作,也就放入加盐值,读取即可
所以得到了加密方式
![](https://img.haomeiwen.com/i13192223/1882c6af4ab83768.png)
最后,拿到了数据库账户和加密方式后,就可以自己新建一个管理员账户,或者有文件权限就直接写马控制,或者暴力跑出其他管理员的账户,增加横向移动的机会。
最后的最后,胆子小,拿了数据库权限就收手了,网络不是法外之地啊!
总结:算的上第一次做真实项目的代码审计,虽然只朝着账户密码去审计,但找到过后,心里还是真的激动。想到的其他审计方面:找可能存在的0day漏洞。奈何技术实力太弱,就暂时搁置了。
如有哪个地方写的有误的,欢迎师傅们指正评判