php代码审计基础指南Xdebug篇

北京中科医院在哪里 https://myyk.familydoctor.com.cn/2831/

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的使用

安洵信息技术有限公司




转载请注明:http://www.aierlanlan.com/grrz/130.html