PHP代码审计入门

代码审计思路

(1)   根据敏感关键字回溯参数传递过程。

(2)   查找可控变量,正向追踪变量传递过程。

(3)   寻找敏感功能点,通读功能点代码、

(4)   直接通读全文代码

 

靶机环境

Phpstudy PHP5.5.38+Apache

espcms_utf8_5.9.14.08.28.zip

 

敏感函数回溯参数过程

根据敏感函数来逆向追踪参数的传递过程,是目前使用得最多得一种方式,因为大多数漏洞是由于函数得使用不当造成的。另外非函数使用不当的漏洞,如SQL注入,也有一些特征,比如select、insert等,再结合from和where等关键字,我们就可以判断这是否是一条SQL语句,通过对字符串的识别分析,就能判断这个SQL语句里面的参数有没有使用单引号过滤,或者根据我们的经验来判断。像HTTP头里面的HTTP_CLENT_IP和HTTP_X_FORWORDFOR等获取到的IP地址经常没有安全过滤就直接拼接到SQL语句中,并且由于他们是在$_SERVER变量中不受GPC影响,那我们就可以取查找HTTP_CLENT_IP和HTTP_X_FORWORDFOR关键字来快速寻找漏洞。

 

我们首先打开seay源代码审计工具 点击新建项目 然后点击自动审计会得到一部分可能存在漏洞的代码列表

定位到漏洞代码位置 citylist.php 代码中

右键--》定位函数

发现有俩个位置使用ACCEPT函数

第一个函数不是类函数的使用方法

我们选中第二个函数右键 选择定位函数这个选项即可进行函数定位

 

双击打开

可以看到这是函数定义在function当中

找到函数位置

 

这是一个获取GET、POST、COOKIE参数值的函数,我们传入的变量是parentid和R,则代表在POST、GET中都可以获取parentid参数,最后经过一个daddslashes()函数,这个函数实际包装的是addslashes()函数,对单引号等字符进行过滤, 不过我们可以看到我们的SQL注入语句是这样的:

原来就是一个addslashes()函数的封装。
那么addslashes()函数是个什么呢。
在这里插入图片描述
这里的值是一个数字,而且也不需要闭合,所以这里存在数字型注入。

POC : http://127.0.0.1/espcms/adminsoft/index.PHP?archive=citylist&action=citylist&parentid=1

它并不需要我们单引号来进行闭合,于是可以直接注入

 为什么要使用citylist?

因为这个漏洞出现在citylist.php文件中

在citylist.php文件中我们看到oncitylist()函数在important类中我们选中该类名右键点击 全局搜索 功能。

 

我们看第45行代码有个include文件的操作,可惜经过addslashes()函数无法进行截断使其包含任意文件,只能包含本地PHP文件 限制我们的目标就是要构造 URL 参数或者某个页面表单参数,来触发 citylist.php 文件里的 oncitylist() 函数进行注入。

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EspCMS 原名:EasySitePM 。一款适用于不同类型企业使用的网站管理平于,它具有多语言、繁简从内核转换、SEO搜索优化、图片自定生成、用户自定界面、可视化订单管理系统、可视化邮件设置、模板管理、数据缓存+图片缓存+文件缓存三重提高访问速度、百万级数据快速读取测试、基于PHP+MYSQL系统开发,功能包括:产品管理、文章管理、订单处理、单页信息、会员管理、留言管理、论坛、模板管理、语言管理、权限自定等。   ESPCMS初次安装注意事项:   一、更新语言引导文件    登陆后台后选择“网站语言管理”-“语言列表”-将您要开通的语言进行“生成引导文件”操作!(提示:如未生成引导文件,则除当前默认语言可以查看外,其它语言查看会出错,因此需要全部生成!另外,如您的网站在本地调试,生成的是以当前环境为主,当网站上传到服务器后,建议再重新生成一次!)   二、当前系统默认是以动态页面显示,如您网站处于调试状态,建议以动态显示为主,当网站调试结束后,再开启“静态页面生成”功能,然后对整站进行生成操作!   三、当前系统默认“关闭缓存”,如网站处理调式阶段,建议关闭,网站如处于运营状态,则建议“开启”。   四、如您网站上传的服务器属于Linux类型,建议您对相关权限目录进行读写权限检查操作。    1、登陆后台    2、选择“系统维护”- “文件夹权限检查”    3、对未设置读写权限操作的文件夹进行“777”权限操作   五、系统支持伪静态功能,请确定您的服务器是否支持该功能,并将htaccess的.htaccess文件复制到根目录及相关语言目录中!   六、如您本地调试URL地址和服务器URL地址不一样,请登陆“系统设置”-“网站参数设置”,对“网站网址”进行更改   七、系统初次使用无静态页,如访问静态页面出错,请进行生成或修改为动态显示即可!   八、系统中包括两套模板,goods为当前模板,请注意不要修改错误!   九、安装完毕后,请删掉到install目录!   易思ESPCMS v5.7更新:   1、增加询盘、订单产品图片显示;   2、修复sitemap生成错误; 运行环境:PHP+MySQL

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值