來源:http://bbs.ichunqiu.com/thread-9177-1-1.html?from=ch
WEB安全系列之如何挖掘XSS漏洞
0x01??前言
一天五篇文章之第一篇(答應(yīng)壞蛋的)
0x02??什么是XSS漏洞
跨站腳本攻擊(Cross Site Scripting)婿奔,為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆缺狠,故將跨站腳本攻擊縮寫為XSS。
0x03??XSS漏洞的危害
1萍摊、盜取各類用戶帳號挤茄,如機(jī)器登錄帳號、用戶網(wǎng)銀帳號冰木、各類管理員帳號
2穷劈、控制企業(yè)數(shù)據(jù),包括讀取踊沸、篡改歇终、添加、刪除企業(yè)敏感數(shù)據(jù)的能力
3雕沿、盜竊企業(yè)重要的具有商業(yè)價(jià)值的資料
4练湿、非法轉(zhuǎn)賬
5、強(qiáng)制發(fā)送電子郵件
6审轮、網(wǎng)站掛馬
7肥哎、控制受害者機(jī)器向其它網(wǎng)站發(fā)起攻擊
0x04??實(shí)戰(zhàn)案例
iwebshop3.7.15071500版本。又興趣的可以下載看一下
/htdocs/iwebshop/controllers/seller.php
goods_update是添加一個(gè)商品到數(shù)據(jù)庫中疾渣,update()中過濾很少
[AppleScript]純文本查看復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21public function goods_update()
{
$id=IFilter::act(IReq::get('id'),'int');
$callback=IFilter::act(IReq::get('callback'),'url');
$callback=strpos($callback,'seller/goods_list')===false? '':$callback;
//檢查表單提交狀態(tài)
if(!$_POST)
{
die('請確認(rèn)表單提交正確');
}
//初始化商品數(shù)據(jù)
unset($_POST['id']);
unset($_POST['callback']);
$goodsObject=newgoods_class($this->seller['seller_id']);
$goodsObject->update($id,$_POST);
$callback ? $this->redirect($callback):$this->redirect("goods_list");
}
后臺讀取數(shù)據(jù)的時(shí)候,是直接從數(shù)據(jù)庫中讀取篡诽。
[AppleScript]純文本查看復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22function goods_list()
{
//搜索條件
$search=IFilter::act(IReq::get('search'),'strict');
$page=IReq::get('page')? IFilter::act(IReq::get('page'),'int'):1;
//條件篩選處理
list($join,$where)=goods_class::getSearchCondition($search);
//拼接sql
$goodsHandle=newIQuery('goodsasgo');
$goodsHandle->order="go.sort asc,go.id desc";
$goodsHandle->distinct="go.id";
$goodsHandle->fields="go.*,seller.true_name";
$goodsHandle->page=$page;
$goodsHandle->where=$where;
$goodsHandle->join=$join;
$this->search=$search;
$this->goodsHandle=$goodsHandle;
$this->redirect("goods_list");
}
首先,商家添加一個(gè)商品榴捡,標(biāo)題寫
后臺訪問時(shí)杈女,彈框
代碼已成功在源碼中。
0x05??修復(fù)建議
對參數(shù)進(jìn)行過濾吊圾。
PHP:htmlentities()或是htmlspecialchars()
Python:cgi.escape()
ASP:Server.HTMLEncode()
ASP.NET:Server.HtmlEncode() 或功能更強(qiáng)的 Microsoft Anti-Cross Site Scripting Library
Java:xssprotect(Open Source Library)
Node.js:node-validator