### 简要描述: 今天又去重新看了看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...
### 简要描述: 今天又去重新看了看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) 注入成功 有图 有真相。