01
代码审计入门
前言
代码审计入门门槛偏高,审计过程枯燥,导致代码审计的师傅偏少。这篇文章送给想入手代码审计的朋友们,希望提升读者的代码审计入门兴趣。
配置
配置工具:
xdebug+visualstudiocode
xdebug+phpstrom
可以选择PHPStudy搭建PHP环境
基础概念
断点:在某一处设置断点,当函数执行到断点处就会停止,断点可以在任意地方设置
单步跳过:运行完该行代码之后运行下一行代码
单步跳入:运行该行代码的同时,进入该行代码,查看该代码如何运行,查看详细的运行过程
单步跳出:从一个调用函数中退出,回到调用该函数的地方
举例
这里我们构造一个函数看看调试结果
02
Xdebug入门
Aespcms后台sql注入审计测试
首先我们定位漏洞代码,在citylist.php中可以看见变量未加入单引号保护,存在风险。
在此处断点获取parentid参数在整个调用链的过程。
单步调试F10进入函数获取方法,定位获取参数get、post方法都可以。这里我们使用GET方法。
很简单的一个绕过,只需设置selecttabale_name=0x即可,也可以使用宽字节注入。
后面就是对参数的值的空与否的判断然后其他参数,这里不多做解释。接下来我们继续在sql处下断点看如何利用的。
断点下在sql处单步进入主类,需要注意的是,这里需要构造主类执行的url。
这里回到继承类,单步进入。
到这里开始执行sql语句。
此时可以看见我们的恶意payload已经注入到sql代码中运行起来了。
03
后记
这个漏洞很鸡肋,原因是admin才有注入权限。调试这个漏洞不仅仅是漏洞复现,更是希望读者深刻理解Xdebug的使用
安洵信息技术有限公司