当前位置: 首页 > java >正文

安全参綉25暑假第一次作业

第一天

        1.首先讲了d0cker的部署,

        这个是第一个Vulhub漏洞环境。所有环境都使用D0cker容器化,使其易于部署和隔离测试。
        其中,国内的阿里用不了,你得搞个代理,下国外的:入门指南 | Vulhub
然后按这个步骤去做,不过你得看看有没有这个文件cd /etc/proxychains.conf,没有的话下这个:apt-get install proxychains ,然后编辑这个vim /etc/proxychains.conf,把最下面的改自己本地地址,端口改代理的,一般是7190,我的是7197;你可能首先要关物理主机的防火墙,不然不会走代理,,如果访问谷歌成功了,说明走了代理,然后第一个命令应该按这个输入:proxychains bash -c "curl -fsSL https://get.docker.com | sh"

        2.讲述了dns的解析过程,

        1️⃣首先我们输入域名时,浏览器会检查我们本地浏览器缓存中是否有该对应的IP地址,有的话就直接返回ip,2️⃣没有的话就会查询操作系统的DNS缓存,如果操作系统缓存有这个域名的解析结果,就直接返回,3️⃣如果操作系统缓存中没有,那么将会把该域名发给本地的DNS服务器,本地DNS服务器通常会缓存域名的解析结果。一般到此就结束了,要是还没有,4️⃣那么就会向根dns服务器发送dns请求,根dns服务器会返回一个顶级域名服务器的地址,然后本地就会向顶级dns服务器发送请求,顶级dns服务器返回该域名对应的地址。最后5️⃣Name Server查询:本地DNS服务器向Name Server发送请求,Name Server返回该域名对应的IP地址和TTL值,本地DNS服务器缓存该域名和IP地址的对应关系,并将结果返回给客户端。客户端根据TTL值将结果缓存到本地系统缓存中
        大概就是这样一个过程,然后域名服务器之间关系是这样的

        3.最后将了https为什么安全:

        这里涉及到一个对称加密的原理,它主要是通过SSL/TLS加密技术保护数据传输的隐私性和完整性。因为加密,所以防止数据在传输的过程中被窃取或篡改

第二天

         1.首先将了RSA的具体原理和实际应用

它使用了非对称加密算法,使用了两个密钥,一个公钥用于加密数据,一个私钥用于解密数据,然后这个安全性目前来说依然难以破解,主要因为它。。。过程有点绕,反正就是应用了欧拉函数,一个特别大的数不容易分解成两个互质的数,所以它的解密难度取决于计算机的算力
        大整数决定了RSA的破解难度,因为大整数需要因式分解,否则无法获得d。

        2.其次讲了debug的部署,在windos和linux下的部署

第三天

1.讲了入鋟的流程是怎样的,

        首先要信息收集,我们的目标是获取后台地址,有80%来自网页(收集子域名whois,第三方网站查询(搜索引擎,谷歌、第三方搜索引擎、fofa.info)),15%来自小程序,5%来自app
我们可以尝试的搜一些网站,像学校之类的,看看他们的网站有没有什么信息泄露,采集信息,在登录页面先进行弱口令尝试,然后密码喷洒,最后再爆破
        例如:利用好谷歌语法查找敏感信息


实际这里获得的学号还是少,但这个东西有规律,我们可以根据规律,拿AI生成一大堆学号


不过这里比较倒霉哈,他要验证码(实际这个学校大多数登录平台都有验证码)防范意识挺高,就不做掩饰了

2.小知识:

       · 密码喷洒:和暴力破解不同,一个账号用一个密码错误后就换一个账号,这样就避免了一个账号测试多个密码后ip被封
       · 某个账号在规定时间内错误次数太多,如1分钟内3-5次错误
       ·sS -ST 面试只问参数
半连接:sS 由于是半连接,较为隐蔽,流量较小,不容易被态势感知 全流量感知等工具发现 不记录日志,但是要root权限
全连接:会记录日志
一直ping:ping -t
死亡ping:ping大包

第四天

1.首先继续昨天的内容,介绍了只有一个登录界面怎么攻击:

        1️⃣查子域名;2️⃣如果没有验证码,用密码喷洒;3️⃣用弱口令;4️⃣.在js里找漏洞

2.其次讲了文件上传,文件包含实例(小程序渗透)

        这里环境什么的也是弄好了,也可以抓到小程序的包了

3.讲了反射型漏侗,还有实际打靶场

       反射型xss漏洞 :对用户的输入没做限制,所以用户可以输入恶意JS代码,最终被服务器解析,并且反射给用户

开始稀里糊涂,跟着回放也是打到第九关了

第一关:<img src=1 onerror=alert(1)>

        onfocus:焦点事件,用在input表单上

第二关:利用标签实体化,防御xss攻鸡

        三种编码:urlcode html实体编码 js的unicode编码
        1️⃣urlcode 英文数字一般不编码,例如:‘是%27
        2️⃣js的unicode编码:是以 \u 开头的;例如 \u0065=e
        然后这个题主要跳过value,要逃逸,
        第一种可以用用户参与,a"onclick="alert(1) 用户点击跳转  或者使用  a"onmouseover="alert(1)鼠标划过跳转
        第二种用户不参与的就要求把input标签闭合 a"><script>alert(1)</script>
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level2.php method=GET>
<input name=keyword  value="a
"><script>alrt(1)</script>">    //最后剩下这个 "> 不用管,他会自己纠错,如果你加一个//把他注释掉也可以
<input type=submit name=submit value="搜索"/>

第三关.htmlspecialchars($str).

        .htmlspecialchars($str) 是 PHP 中的一个函数,用于将字符串中的特殊字符转换为 HTML 实体(HTML entities)。这是防范 XSS(跨站脚本攻击)的重要手段之一,通过将潜在的恶意代码转换为无害的文本显示,确保用户输入不会被浏览器解析为执行代码。
        而他和第二关不同的是他这个地方也有过滤
        可以将这些字符转化为实体
&  转换为 &amp
<  转换为 &lt
>  转换为 &gt
"  转换为 &quot 除非设置了ENT_NOQUOTES
'  转换为
&#039 设置了ENT_QUOTES后,&#039;(如果是ENT_HTML401),或者 sapos;(如果是 ENT_XML1、ENT_XHTML 或ENT_HTML5)。
答案:a' onclick='alert(1)

 

第四关:过滤了<>

        $str = $_GET["keyword"];
        $str2=str_replace(">","",$str);
        $str3=str_replace("<","",$str2);
                过滤了 < >
                所以答案:a" onclick="alert(1)

第五关 没过滤href

$str = strtolower($_GET["keyword"]);    表示把keyword全部转化为小写
第五关还是过滤,只是过滤了<script>和on,所以我们不用这两个
答案:a"><a href="javascript:alert(1)">aaaaaaa</a>

第六关 html大写绕过

虽然他过滤了好多词,但是html不区分大小写,所以我们可以使用大写的来绕过,不过javascript代码就会区分大小写

第七关 替换过滤只能替换一次

这个看似大小写和关键词都过滤了,但这是替换过滤,现在见不到了,因为他只能替换一次,比如 ononclick 替换后就成了 onclick
所以答案为:a"oonnclick="alert(1)

看他后端代码叫白盒审计,看前端代码叫黑盒审计:
审计人员在完全知晓目标系统内部结构、源代码、设计文档等 “白盒” 信息的前提下,对系统进行全面的安全分析,以发现潜在的漏洞、逻辑缺陷或不符合安全规范的代码。

第八关:href支持的编码

这里很多词给过滤掉了,我们就要看href支持哪些编码了
HTML 实体编码:JavaScript 变成 &#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&colon;

UTF-8编码、URL编码、Unicode编码出来 javascript 还是 javascript
所以答案:&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;alert(1)

http://www.xdnf.cn/news/15405.html

相关文章:

  • Student后台管理系统查询接口
  • CentOS服务器安装Supervisor使队列可以在后台运行
  • GAMES101 lec2-数学基础1(线性代数)
  • 为何说分布式 AI 推理已成为下一代计算方式
  • 特殊的整数-水仙花数
  • 【c++】c++11新特性(右值引用和移动语义)
  • Java报表导出框架
  • 详解BIO,NIO,AIO
  • 【git fetch submodule报错】Errors during submodule fetch 如何解决?
  • 【Java EE】多线程-初阶 认识线程(Thread)
  • urlencode、html实体编码、unicode
  • 进程---基础知识+命令+函数(fork+getpid+exit+wait+exec)
  • ACL流量控制实验
  • 12.如何判断字符串是否为空?
  • 记字节前端面试一道简单的算法题
  • 游戏玩法的专利博弈
  • 大话数据结构之 <链表>(C语言)
  • 使用 keytool 在服务器上导入证书操作指南(SSL 证书验证错误处理)
  • 【DOCKER】-4 dockerfile镜像管理
  • Python数据容器-通用功能
  • grpo nl2sql qwen3 模型强化学习训练有效果的成立条件有哪些
  • java--ThreadLocal创建以及get源码解析
  • 131. Java 泛型 - 目标类型与泛型推断
  • RNN(循环神经网络)
  • js与vue基础学习
  • Cesium源码打包
  • 从数据库到播放器:Java视频续播功能完整实现解析
  • Netty编程模型介绍
  • 聚宽sql数据库传递
  • 【WPF】WPF 自定义控件 实战详解,含命令实现