对Semcms的代码渗透测试 挖掘SQL注入漏洞

这篇文章是前一段时间做的渗透测试。这一次,整篇文章利用当前的服务器环境进行再现。如果有不合理的地方,可能是在做局部复制的过程中没有完全恢复真实环境,主要是记录当时做这个渗透测试的思路和被踩的坑。常规找不到漏洞,打开网站是商场交易系统,国外还是应该做外贸或者商场网站。商场网站,如果不是多商户版,应该只有首页,列表,详情,购物车,订单等。,它不会有太多的功能。在这种情况下,我们先忽略程序代码漏洞,看看有哪些文件可用。


扫描后发现robots.txt是空的,其他文件中没有有使用价值的信息,主要是后台地址和一些备份文件。既然这方面没有突破,其他地方也进行了各种常规测试都没有成功,我就不在这里重复了,但是偶然看到这个网站的版权信息后,思路来了,有没有代码审核?

Semcms3.9也是PHP版本。现在上网搜索,看看有没有现成的漏洞可以利用。根据各种搜索,只能看到3.8版有漏洞,3.9版没有。官网最新版本才3.9,唉,看来只能自己审核代码了。


整理程序代码框架,根据官网下载程序代码,本地搭建运行,先看程序代码目录。安装完成后,程序代码会自动删除安装目录中的所有安装文件,并随机命名后台的地址。我这里的后台地址已经改成H9gTyz_ADgu了,这就解释了为何刚扫描目录的过程中没有找到后台相对路径,CMS在安装的过程中避免了这样的情况。


先看入口,先划掉整个程序代码的运行程序代码,打开index.php,先介绍一个web_inc.php文件,再介绍一个Function.php文件,最后介绍一个default.php文件,index.php文件中只介绍这三个文件,先看看web_inc.php文件的内容是什么。介绍了db_conn.php和contorl.php文件,然后根据数据库查询得到一些网站信息,如网站名称、网站URL等。这个文件应该是一个数据库连接文件,那么这个contorl.php文件是什么呢?继续追踪。可以看到,contorl.php文件中有一些定义很好的方法,第一种是防止SQL注入的方法,这里防止SQL注入只是针对$_GET,也就是说如果是POST请求,可能不会有SQL注入,后面可以重点介绍。看完这个,我再看Index.php文件介绍的第二个文件,Function.php。

分享: