网络安全
文章平均质量分 96
我乐了.
这个作者很懒,什么都没留下…
展开
-
文件包含:不受限地引入文件可能导致网站被入侵
很多语言支持使用包含文件,这样允许开发者把可重复使用的代码存入单个文件中,在未来需要使用时,将它包含在其他代码文件中即可使用。如果是像 C/C++ 这种编译语言,即使可以包含任意文件,若没有调用其中函数也不会有什么影响;但是像 PHP 这种解析型语言,文件放在服务器上被访问就可能被执行了,PHP 中常用的文件包含函数有:include()require()当上述函数参数被外部任意控制时,就可以引用包含恶意代码的文件,导致执行恶意代码,这就是漏洞产生的原因。原创 2024-01-30 17:22:43 · 265 阅读 · 0 评论 -
命令与代码注入:常令安全人员半夜应急的漏洞
将黑名单内容拆分到不同的变量,再拼接起来执行。原创 2024-01-30 17:21:17 · 409 阅读 · 0 评论 -
文件上传漏洞:种植服务器木马的捷径
其中的 name 与 tmp_name 可以理解为污染源触发上传文件存储的函数常见于:move_uploaded_file,审计代码时就可以先从此函数入手,看其参数是否有来源于上述污染源数据,并且中间无任何的上传限制,那就有可能存在上传漏洞,最后再手工上传验证下。很多网站都有一些文件上传功能,常见的是图片、视频、压缩文档上传,如果网站是 PHP 写的,那么上传 PHP 到服务器就有可能被解析,若服务器支持其他语言的解析执行,比如 ASP、JSP、ASPX 等文件也可达到同等攻击效果,达到恶意代码执行。原创 2024-01-30 17:20:08 · 975 阅读 · 0 评论 -
反序列化漏洞:数据转换下的欺骗
个人认为,想主动检测一些反序列化漏洞,特别是 0day 漏洞,最好的方法就是代码审计,针对不同的语言的反序化操作函数,比如 php unserialize 函数,还要注意 phar 文件攻击场景,然后往上回溯参数的传递来源,看是否有外部可控数据引用(比如 GET、POST 参数等等),而又未过任何过滤,那么它就有可能存在反序列化漏洞。那么我们该如何利用呢?这里主要介绍的是 PHP 的序列化与反序列化,很多语言也都有这种功能,我在后面的“扩展:其他语言的反序列化”小节中做了补充,你可以继续去探索下其他语言。原创 2024-01-30 17:18:33 · 569 阅读 · 0 评论 -
XXE 漏洞:XML 解析器的坑
XML(Extensible Markup Language)意为可扩展性标记语言,我将介绍下 XML 的一些基础知识,方便你更好地理解漏洞原理。原创 2024-01-30 17:15:17 · 574 阅读 · 0 评论 -
SSRF 漏洞:外网隔离就绝对安全了吗?
SSRF(Server-Side Request Forgery,服务端请求伪造)是指攻击者向服务端发送包含恶意 URL 链接的请求,借由服务端去访问此 URL ,以获取受保护网络内的资源的一种安全漏洞。SSRF 常被用于探测攻击者无法访问到的网络区域,比如服务器所在的内网,或是受防火墙访问限制的主机。SSRF 漏洞的产生,主要是因为在服务端的 Web 应用,需要从其他服务器拉取数据资源,比如图片、视频、文件的上传/下载、业务数据处理结果,但其请求地址可被外部用户控制。原创 2024-01-30 17:13:43 · 1106 阅读 · 0 评论 -
CSRF 漏洞:谁改了我的密码?
CSRF(Cross Site Request Forgery,跨站请求伪造,也叫 XSRF)漏洞是由于未校验请求来源,导致攻击者可在第三方站点发起 HTTP 请求,并以受害者的目标网站登录态(cookie、session 等)请求,从而执行一些敏感的业务功能操作,比如更改密码、修改个人资料、关注好友。用张时序图来解释会更清楚一些,我把常用的攻击方式也画了上去,如下图所示:图 1:CSRF 跨站请求伪造原理从以上可以得知,CSRF 比较依赖业务功能。原创 2024-01-30 17:12:20 · 713 阅读 · 0 评论 -
SQL 注入:漏洞的检测与防御
当用户输入恶意构造的 and 语句时,不做编译处理,按原语句模板将输入值带入到对应的占位符中,此处即 id 参数,也就是说 1 and 1=1 仅为参数值带入,不作为 SQL 语句编译,那么 and 语句就不会被执行,从而防止 SQL 注入。RASP 不用考虑网络请求中的各种复杂的数据处理过程,只需要在对应的漏洞触发函数进行 Hook 插桩检测等操作,同时 RASP 能够给出漏洞触发的程序上下文,帮助开发人员和安全人员快速定位漏洞代码,并实现漏洞的检测、告警和阻断。但它也不是无懈可击的,难免会被绕过。原创 2024-01-30 17:10:30 · 826 阅读 · 0 评论 -
SQL 注入:小心数据库被拖走(下)
前面的示例都是在有错误回显的情况下,通过 SQL 注入获得我们想要的用户信息,但有时在渗透测试时,网站并没有错误回显,此时就只能去盲注猜解出数据库名、字段名和值等关键信息。通过当前页面的功能,我们可以知道它当前的数据库会涉及哪些数据,比如当前是账号创建和登录的页面,数据库必然包含账号密码信息,我们就可以先获取当前数据库名,后面再用来读取数据库中的字段值。前面使用的是 union select 1,2,3... 的方式不断追加查询的字段数来猜测,但如果业务就有很多的字段数,这个方法就有点烦琐了。原创 2024-01-30 17:09:33 · 1006 阅读 · 0 评论 -
SQL 注入:小心数据库被拖走(上)
前面列举的 SQL 注入是存在错误显示的,很容易判断 SQL 语句被注入后出错。简单来讲,就是开发时未对用户的输入数据(可能是 GET 或 POST 参数,也可能是 Cookie、HTTP 头等)进行有效过滤,直接带入 SQL 语句解析,使得原本应为参数数据的内容,却被用来拼接 SQL 语句做解析,也就是说,有错误回显的都可以尝试使用报错型注入方法,在 sqli-labs 第 11 题中介绍的单引号注入方式就是最简单有效的检测方法,它的本质是设法构造出错误的 SQL 语法使其执行错误。原创 2024-01-30 17:07:30 · 584 阅读 · 0 评论 -
XSS:漏洞的检测与防御
如果在官方修复前,那个 XSS 漏洞已经被恶意利用了,那即使已经通过输入检查方法修复了,被插入的恶意代码仍会存在,这可以认为是修复不彻底的表现。PhantomJS:已停止维护。DOM XSS 的扫描相比常规 XSS 要难一些,主要是针对 JS 代码的分析,如果只是简单的正则匹配,就很容易误报漏报。不同的语言有不同的特性,在源码审计时需要采取不同的检测点,但有一个共同的思路,那就是。有时我们也会反着来:先查看一些危险的输出函数,再回溯它的参数传递,判断是否有未经过滤的用户输入数据,若有就代表可能存在漏洞。原创 2024-01-30 17:04:51 · 1004 阅读 · 0 评论 -
XSS跨站脚本-案例详解
在这些常见的Web 漏洞中,XSS(Cross-site Script,跨站脚本)漏洞无疑是最多见的。根据 HackerOne 漏洞奖励平台发布的,XSS 漏洞类型占所有报告漏洞中的 23%,排名第一。图 1:HackerOne 平台上报告的漏洞类型占比。原创 2024-01-30 16:41:42 · 1116 阅读 · 0 评论 -
靶场:搭建漏洞练习环境
上面的 XSS 漏洞默认是安全的,在实际练习时,可以在“DVWA Security“中设置安全等级,即题目的难度等级,共有 4 等,其中 Impossible 代表的是已修复漏洞的情况,可以用来熟悉如何修复漏洞。做题时它能直接提供阅读源码的功能,不过题目相对少一些。对于每个漏洞,VulHub 都有相应的文档描述其漏洞原理以及测试利用方法,你在重现漏洞后,可以进一步研究相关漏洞类型的利用技术,并对漏洞代码进行阅读,以提高代码审计能力。前面的靶场都是精心构造的漏洞场景,与真实的漏洞场景还是有一些差异的。原创 2024-01-30 16:37:12 · 661 阅读 · 0 评论 -
掌握目标的一切信息--网络安全
对于喜欢刷漏洞奖励平台的同学,bounty-targets-data 确实是一份不错资源,它可以开启循环扫描,不停地去扫这些有奖励计划的域名,运气好的话,可以挖到漏洞拿奖金。的界面很酷,它能够从 Twitter、GitHub、Skype、Linkedin、Instagram 等社交平台上收集信息,但需要提前设置各平台上的 API KEY,可以输入一个邮箱地址去搜索其上述平台上的关联信息,最后会以可视化效果展示出来,如下图所示。,为后续发现漏洞提供信息帮助,但它可能引起目标的注意,或被记录下扫描行为。原创 2024-01-30 16:22:38 · 967 阅读 · 0 评论 -
常用的渗透测试工具
它本身也会收集一些产品的 PoC(概念证明,常被用于验证是否存在漏洞,如下图所示),同时在外部曝光或自主挖掘到漏洞时,借助该框架添加规则,可以快速去扫描相关资产是否存在漏洞,原创 2024-01-30 16:20:36 · 688 阅读 · 0 评论