來源:http://bbs.ichunqiu.com/thread-10532-1-1.html?from=ch
最近在學習代碼審計看了許多教程現(xiàn)在來說說儲存型的XSS形成芒炼。
什么是儲存型XSS?存儲型XSS扇售,持久化,代碼是存儲在服務器中的嚣艇,如在個人信息或發(fā)表文章等地方承冰,加入代碼,如果沒有過濾或過濾不嚴食零,那么這些代碼將儲存到服務器中巷懈,用戶訪問該頁面的時候觸發(fā)代碼執(zhí)行。這種XSS比較危險慌洪,容易造成蠕蟲顶燕,盜竊cookie等。
下面我們來搭建一個本地漏洞平臺進行演示冈爹∮抗ィ【說明一下代碼是暗月某課程里面挖來的不過因為有點老所以有些語句寫法不用了,所以找了團隊某個牛給改改了】
樣式如下频伤,源文件肯定也會發(fā)出來給你們自己動手操作的恳谎。
[PHP]純文本查看復制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
mysql_connect('localhost','root','root');
mysql_select_db('test');
mysql_query("set names gbk");
if(isset($_POST['submit'])){
$title=$_POST['title'];$con=$_POST['con'];
$sql="INSERT INTO `book` (`id` ,`title` ,`con`)VALUES (NULL , '$title', '$con');";
if(mysql_query($sql))
{echo"留言成功";
}else{
echo"留言失敗";
}
}else{
$sql="select * from book";
if($row=mysql_query($sql)){
while($rows=mysql_fetch_array($row)){
echo$rows['id'].$rows['title'].$rows['con']."
";
//echo htmlspecialchars ($rows['id'].$rows['title'].$rows['con']."
");
}
}
}
?>
i春秋儲存XSS審計與防御【代碼來自暗月后團隊大牛改寫】
標題:內容:
下面是mysql的表。
[SQL]純文本查看復制代碼
1
2
3
4
5
6CREATETABLE`book` (
`id`int(5)NOTNULLauto_increment, `title`varchar(32)NOTNULL,
`con` textNOTNULL,PRIMARYKEY(`id`)
) ENGINE=MyISAMDEFAULTCHARSET=gbk AUTO_INCREMENT=1 ;
好了我們先看看能不能留言成功憋肖!
留言成功因痛,我們讓看看我們留言的內容。
下面我們測試一下我們的跨站腳本岸更。我們用HACKbar生成一個payload .
我們插入一下.【嘿別想歪了......】成功留言鸵膏。
我們返回看一下留言的內容,成功觸發(fā)了XSS怎炊。
下面我們分析他的源代碼谭企,原因很常見廓译。
[PHP]純文本查看復制代碼
1
2$title=$_POST['title'];
$con=$_POST['con'];
這兩處變量參數(shù)沒有任何過濾導致了下面
[PHP]純文本查看復制代碼
1
echo$rows['id'].$rows['title'].$rows['con']."
");
輸出語句毫無保留的輸出出去了......
心細的同學可能發(fā)現(xiàn)了,在這輸出語句下面我還注釋了一串輸出語句债查。
那個注釋的語句是干什么的那非区?如果各位在寫代碼時候已經寫了很多了又不想翻回去添加過濾的代碼
[PHP]純文本查看復制代碼
1
htmlspecialchars
函數(shù)可以幫助你完美的解決問題。下面我們演示一下盹廷,注釋上面直接輸出語句使用我們過濾語句征绸。
大家看見了咱們的腳本被轉義了
[PHP]純文本查看復制代碼
1
htmlspecialchars
[PHP]純文本查看復制代碼
1
2預定義的字符是:
& (和號) 成為 &" (雙引號) 成為 "' (單引號) 成為 '< (小于) 成為 < > (大于) 成為 >
在學習時候我問了zusheng??咱們還可以
[PHP]純文本查看復制代碼
1
$cahr= htmlspecialchars(需要轉譯的字符串);
自定義轉義字符來過濾XSS跨站腳本。
拿儲存型XSS一半都是獲取cookies的我們演示一下如何獲取cookies俄占。那我團隊私有的xss平臺做演示歹垫。成功獲取。
學習完以后大家記住要把學習感悟發(fā)到本文下面哦5叻拧E挪摇!E鲂住D喊拧!欲低!】