### 简要描述:
今天又去重新看了看phpmywind
在官网上下的 版本还是4.6.6
无需登录 无需单引号。
### 详细说明:
在order.php中
```
if(empty($_COOKIE['shoppingcart']))
{
header('location:shoppingcart.php');
exit();
}
//不允许游客下单跳转登陆
if(empty($_COOKIE['username']))
{
header('location:member.php?c=login');
exit();
}
```
让这两个不为空就好。
```
$action = isset($action) ? $action : '';
$datagroup = isset($datagroup) ? $datagroup : '';
$level = isset($level) ? $level : '';
$v = isset($areaval) ? $areaval : '0';
//获取级联
if($action == 'getarea')
{
$str = '<option value="-1">--</option>';
$sql = "SELECT * FROM `#@__cascadedata` WHERE level=$level And ";
if($v == 0)
$sql .= "datagroup='$datagroup'";
else if($v % 500 == 0)
$sql .= "datagroup='$datagroup' AND datavalue>$v AND datavalue<".($v + 500);
else
$sql .= "datavalue LIKE '$v.%%%' AND datagroup='$datagroup'";
$sql .= " ORDER BY orderid ASC, datavalue ASC";
$dosql->Execute($sql);
```
什么$level v啊 都是可控的 但是会被转义。
观察这个语句。、
else if($v % 500 == 0)
$sql .= "datagroup='$datagroup' AND datavalue>$v AND datavalue<".($v + 500);
只要满足这个 可以发现 v是没有单引号的。 所以就可以持续注入了。
但是内置80sec的ids 就是dede那个
不过已经被绕过了。
@`'` 但是这个单引号会被转义。 我添加一个这个还是没绕过
然后再在结尾又添加了一个 然后绕过成功。
然后构造一下语句
注入成功。
### 漏洞证明:
[<img src="https://images.seebug.org/upload/201402/22131803933269a2cae6101aa39d8c1d073fd7af.jpg" alt="_)(05V$`XNQ(AFX`S[T`YKX.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201402/22131803933269a2cae6101aa39d8c1d073fd7af.jpg)
注入成功 有图 有真相。
暂无评论