php代码审计_php代码审计基础指南——Xdebug篇

01

代码审计入门

前言

  代码审计入门门槛偏高,审计过程枯燥,导致代码审计的师傅偏少。这篇文章送给想入手代码审计的朋友们,希望提升读者的代码审计入门兴趣。

配置

配置工具:

       xdebug + visual studio code

       xdebug + phpstrom

可以选择PHPStudy搭建PHP环境

基础概念

断点:在某一处设置断点,当函数执行到断点处就会停止,断点可以在任意地方设置

单步跳过:运行完该行代码之后运行下一行代码

单步跳入:运行该行代码的同时,进入该行代码,查看该代码如何运行,查看详细的运行过程

单步跳出:从一个调用函数中退出,回到调用该函数的地方

举例

这里我们构造一个函数 看看调试结果

8dd6f7123a67556c6307152f221be287.png

fdb4923b349bb8ac811ad22623bac49b.png

02

Xdebug入门

Aespcms 后台sql注入审计测试

首先我们定位漏洞代码,在citylist.php中可以看见变量未加入单引号保护,存在风险。

f8308f161f76e4f3f50d9e0efbb9313b.png

在此处断点获取parentid参数在整个调用链的过程。

2e928b0df9c2c8b7410007674fad2b3e.png

单步调试F10进入函数获取方法,定位获取参数get、post方法都可以。这里我们使用GET方法。

109c324eab94026835a52aa27107a81a.png

很简单的一个绕过,只需设置select tabale_name =0x即可,也可以使用宽字节注入。

1190b9c13475dfa8810bd62358b0085e.png

  后面就是对参数的值的空与否的判断然后其他参数,这里不多做解释。接下来我们继续在sql处下断点看如何利用的。

  断点下在sql处单步进入主类,需要注意的是,这里需要构造主类执行的url。

ff0f339f83a2d1bad6621cd5e1f82588.png

这里回到继承类,单步进入。

670ea9071f375cdf304c301fa9706f6b.png

7e81a78b988bf57d85f363d707a47c50.png

到这里开始执行sql语句。

35e191c2a7365c1afceee332b1e1cfa6.png

此时可以看见我们的恶意payload已经注入到sql代码中运行起来了。

6e2d6079a6f674eea808ef44238bb94e.png

03

后记

  这个漏洞很鸡肋,原因是admin才有注入权限。调试这个漏洞不仅仅是漏洞复现,更是希望读者深刻理解Xdebug的使用

d89e7b3a1b9487bc9eebe9520b570e65.png

安洵信息技术有限公司

www.i-soon.net

437805af2edafa814266b43162227363.png

专业的信息安全产品和服务解决方案提供商

400-066-5915

上海丨四川丨江苏 | 云南

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值