### 简要描述:
发现PageAdmin官网更新了版本,就去复查了一下,然后发现厂商的修复手段等于没修复!
http://www.pageadmin.net/soft/ 选择本地下载最新版,PageAdmin V3.0.20151204(最后更新时间:2016-03-11)
Demo站换了后台地址,这次仅在本地复现。
### 详细说明:
#0 之前的漏洞是这个 http://**.**.**.**/bugs/wooyun-2016-0177673
#1 依旧是/e/master/build_static.aspx 这个页面
原来的代码是这样的:
```
if(IsNum(Ids)){
sql="select id,site_dir,static_dir,static_file,lanmu_id,sublanmu_id from "+Table+" where html=2 and id="+Ids;
}
else
{
sql="select id,site_dir,static_dir,static_file,lanmu_id,sublanmu_id from "+Table+" where html=2 and id in("+Ids+")";
}
```
而在最新的版本中被修复为了:
```
if(IsNum(Ids))
{
sql="select id,site_dir,static_dir,static_file,lanmu_id,sublanmu_id from "+Sql_Format(Table)+" where html=2 and id="+Ids;
}
else
{
sql="select id,site_dir,static_dir,static_file,lanmu_id,sublanmu_id from "+Sql_Format(Table)+" where html=2 and id in("+Ids+")";
}
```
#2 审计Sql_Format()函数
```
private string Sql_Format(string str)
{
if(str=="" || str==null)
{
return "";
}
str=str.Replace("'","''");
str=str.Replace("\"","\"");
return str;
}
```
发现仅仅将'替换为了'' 而"还是替换成立"
然而我上个漏洞中的POC中的注入代码中一个单引号都没有,而且页面的越权也没有被修复。本地复现成功
[<img src="https://images.seebug.org/upload/201603/11173137c0a0d4838d97512cd753102de44916e4.png" alt="poc.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201603/11173137c0a0d4838d97512cd753102de44916e4.png)
### 漏洞证明:
#0 之前的漏洞是这个 http://**.**.**.**/bugs/wooyun-2016-0177673
#1 依旧是/e/master/build_static.aspx 这个页面
原来的代码是这样的:
```
if(IsNum(Ids)){
sql="select id,site_dir,static_dir,static_file,lanmu_id,sublanmu_id from "+Table+" where html=2 and id="+Ids;
}
else
{
sql="select id,site_dir,static_dir,static_file,lanmu_id,sublanmu_id from "+Table+" where html=2 and id in("+Ids+")";
}
```
而在最新的版本中被修复为了:
```
if(IsNum(Ids))
{
sql="select id,site_dir,static_dir,static_file,lanmu_id,sublanmu_id from "+Sql_Format(Table)+" where html=2 and id="+Ids;
}
else
{
sql="select id,site_dir,static_dir,static_file,lanmu_id,sublanmu_id from "+Sql_Format(Table)+" where html=2 and id in("+Ids+")";
}
```
#2 审计Sql_Format()函数
```
private string Sql_Format(string str)
{
if(str=="" || str==null)
{
return "";
}
str=str.Replace("'","''");
str=str.Replace("\"","\"");
return str;
}
```
发现仅仅将'替换为了'' 而"还是替换成立"
然而我上个漏洞中的POC中的注入代码中一个单引号都没有,而且页面的越权也没有被修复。本地复现成功
[<img src="https://images.seebug.org/upload/201603/11173149c13043b8959f2fb61cf9e034087bdb0f.png" alt="poc.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201603/11173149c13043b8959f2fb61cf9e034087bdb0f.png)
暂无评论