针对后端组件的攻击测试

  • A+
所属分类:安全文章

学习打卡计划是信安之路知识星球开启的 “每天读书一小时,挑战打卡一百天” 主题活动,能够坚持学习打卡 100 天的同学可以获得信安之路提供的百分成就徽章和证书,学习书籍可以自选,主要目的是养成每日读书学习的好习惯,并将自己的学习心得分享出来供大家学习。

下图为知识星球的概况,包含了2021年信安之路的主推方向和规划:

针对后端组件的攻击测试

打卡一:web 实战 P457-470

这部分内容是关于注入系统命令,也就是常说的命令注入,使用场景通常是一些公共组件存在命令执行的漏洞比如 fastjson 反序列化漏洞等,还有一些提供执行系统命令功能的接口,可以输入参数来组成一条完整的系统命令,这样就给我们提供了命令执行的场景。

命令注入的漏洞利用核心是对于系统命令的掌握程度,也就是对于不同操作系统的使用熟练程度,比如 linux 命令行下如何下载、上传、编辑文件,如何探测网络环境,同样在 windows 下如何做相同的操作。

在这个阶段我们相当于已经拿到了系统的操作权限,可以做的事儿已经超出了 web 应用程序的束缚,可以对操作系统、同网络下的其他主机发起探测和攻击。

操作系统执行命令都支持多命令执行,比如 Linux 下使用 | 来连接不同命令,执行时所有连接的命令均可以被执行,windows 下可以使用 && 连接想要执行的所有命令。

在不同的脚本语言中执行系统命令的函数不同,比如 PHP 中的 exec、system、eval 等,了解可以执行系统命令的函数有助于我们做代码审计时发现相应的漏洞。

关于命令执行漏洞的模拟还是比较简单的,大家可以写一个页面然后可以提交参数,比如 ping 作为命令,IP 和域名作为可自定义的参数,然后通过构造参数执行自定义的命令,比如 ipconfig/ifconfig,powershell、wget 之类的。

打卡二:web 实战 P471-488

在使用 web 应用的时候,经常会遇到一些可以下载网站上的文件的功能,这类功能很容易出现任意文件下载的漏洞,比如下载系统文件 /etc/passwd,这类漏洞,在我们查看下载链接时,如果下载文件的参数可以自定义,那么极有可能存在这类问题,一方面是下载文件的权限没有做限制,另一方面对于文件的路径没有限制,那么就会给我们下载其他目录下文件的机会。

在利用的时候,需要借助系统切换上层目录的功能 ../ 代表上层目录,当我们在目录 /var/www/html/ 时,我们需要使用的 ../../../ 来切换至根目录下,如果想要访问 /etc/passwd,那么就需要使用 ../../../etc/passwd,这是在利用任意文件下载漏洞时需要注意的点 。

有的时候,我们并不知道文件下载的功能文件在哪个目录下,也不知道需要向后几层可以到达根目录,所以就需要进行遍历,通过暴力枚举的方式来探测目录的深度。

有些参数只是一个文件的名字不带后缀,后缀有系统自动拼接,我们在使用参数 /etc/passwd 时,实际拼接出来是 /etc/passwd.jpg,这样我们是无法获取内容的,那么就可以尝试用 00% 来对文件名进行截断,让后面拼接的后缀名失效。

文件包含漏洞跟这个类似,通常是 PHP 网站会存在,因为 PHP 脚本文件可以使用 include 来加载其他 PHP 文件,加载的文件会被当作 php 脚本来执行,无论你包含的文件是 txt 还是 php,文件中的内容都会被作为 php 脚本执行。

有些网站页面为了方便,通过参数的方式传递要包含的文件,所以就有了被我们利用的可能,主要分两种方式,远程文件包含和本地文件包含两种,主要区别在于 PHP 的配置中关于远程文件包含的配置是否开启。

对于远程文件包含的漏洞很好利用,只要我们控制一个远程的服务器,将恶意代码上传,然后在文件包含漏洞处将我们的恶意代码访问的链接作为参数传递即可。

对于本地文件包含可以借助文件上传功能,或者日志记录功能来实现恶意代码的输入并包含利用,达到我们入侵网站的效果。

总结

公众号分享的学习打卡内容就到这里了,如果大家对这本书感兴趣的话,可以自行阅读,关于信息安全的学习和入门,看书为一种学习方式,对于不同的人有不一样的需求,也有适合自己的学习方式,在这里再次分享一下我自己的信息安全学习路线:

1、首先学习的是 C 语言程序设计,主要学习的是面向过程的编程方法,也是最贴近计算机原理的语言

2、然后是数据结构,也就是各种算法,如何实现一些复杂的算法

3、其次是面向过程的编程思想,比如 C++、C#、python,这类语言是高级语言,很多功能函数都封装好了的,直接用就行

4、以上学习编程的一些经历,毕竟安全行业也是计算机行业的一部分,编程是基础

5、关于安全最初看一些网上简单的实战文章,比如直接下载工具就能用的那种,实践测试一番,看看效果,可以加深印象

6、然后是看 web 安全实战这本书,看过一遍之后,各种概念都在脑子里有印象,然后去参加一些 CTF 比赛,做做他们的 CTF 题目,关于 web 安全的,这是最接近实战的演练,也是可以提升我们学习动力和成就感的事情

7、最后就是去实战测试,比如针对一些有 SRC 窗口的公司,去做做漏洞挖掘,然后用工具进行自动化,比如扫描、漏洞测试、信息收集等,提升脚本能力以及安全测试的效率

8、到这个阶段基本也算入门, 找工作应该是不用发愁。

针对后端组件的攻击测试

本文始发于微信公众号(信安之路):针对后端组件的攻击测试

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: