### 简要描述:
删除lock之后可以重装系统
然后连接上自己搭建的mysql环境 重装后 。。。。然后就各种操作。
20140618
### 详细说明:
在app/my_goods.app.php中
```
function drop_image()
{
$id = empty($_GET['id']) ? 0 : intval($_GET['id']);
$uploadedfile = $this->_uploadedfile_mod->get(array(
'conditions' => "f.file_id = '$id' AND f.store_id = '{$this->_store_id}'",
'join' => 'belongs_to_goodsimage',
'fields' => 'goods_image.image_url, goods_image.thumbnail, goods_image.image_id, f.file_id',
));
if ($uploadedfile)
{
$this->_uploadedfile_mod->drop($id);
if ($this->_image_mod->drop($uploadedfile['image_id']))
{
// 删除文件
if (file_exists(ROOT_PATH . '/' . $uploadedfile['image_url']))
{
@unlink(ROOT_PATH . '/' . $uploadedfile['image_url']);
}
if (file_exists(ROOT_PATH . '/' . $uploadedfile['thumbnail']))
{
@unlink(ROOT_PATH . '/' . $uploadedfile['thumbnail']);
}
```
```
$uploadedfile = $this->_uploadedfile_mod->get(array(
'conditions' => "f.file_id = '$id' AND f.store_id = '{$this->_store_id}'",
'join' => 'belongs_to_goodsimage',
'fields' => 'goods_image.image_url, goods_image.thumbnail, goods_image.image_id, f.file_id',
```
这里查询出来后 然后就带入到了unlink当中
这里哪里入库呢?
首先注册一个会员 然后发布商品 然后
[<img src="https://images.seebug.org/upload/201407/181335178b07c97f2eb2bccac20645b9d71205f4.jpg" alt="e90.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201407/181335178b07c97f2eb2bccac20645b9d71205f4.jpg)
这里别去上传文件 直接在地址处这样写
然后入库 而且不会被重命名。
此时执行的语句 INSERT INTO ecm_goods_image(goods_id,image_url,thumbnail,sort_order,file_id) VALUES('1','data/install.lock','data/install.lock','255','0')
没有rename
然后在删除这个商品的时候
就触发了 @unlink(ROOT_PATH . '/' . $uploadedfile['image_url']);
[<img src="https://images.seebug.org/upload/201407/18133838caa215f761cbb8702bb855577a327a0f.jpg" alt="e91.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201407/18133838caa215f761cbb8702bb855577a327a0f.jpg)
[<img src="https://images.seebug.org/upload/201407/18133915b9949f90bd5a53c0531a0e9bb56ab4bd.jpg" alt="e92.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201407/18133915b9949f90bd5a53c0531a0e9bb56ab4bd.jpg)
因为
```
if (file_exists(ROOT_PATH . '/' . $uploadedfile['image_url']))
{
@unlink(ROOT_PATH . '/' . $uploadedfile['image_url']);
}
if (file_exists(ROOT_PATH . '/' . $uploadedfile['thumbnail']))
{
@unlink(ROOT_PATH . '/' . $uploadedfile['thumbnail']);
```
他这里unlink了两次 所以第一次unlink后 文件就不存在了 第二次unlink的时候就报错了 但是没影响 因为文件是已经删除了的。
然后直接重装
[<img src="https://images.seebug.org/upload/201407/18134115f6400ef5b601cbcd9ff2cba717315d33.jpg" alt="e93.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201407/18134115f6400ef5b601cbcd9ff2cba717315d33.jpg)
然后写自己的mysql环境就能重装 然后各种操作了。
### 漏洞证明:
见上。
暂无评论