关于CTF

Web安全
Web安全涉及的内容非常丰富,就典型的Web服务来说,其安全问题可能来自于Web服务器、数据库服务器、以及Web程序本身等。
(1)首先学习Web服务器的配置。了解典型的Web服务器如何构建的,典型的Web服务器包括微软的IISIIS搭建、Apache、 Tomcat 等。
(2)Web程序的开发离不开脚本语言。如何构建一个静态的Web网站搭建静态网站? HTML的开发规则是什么HTML开发规则?如何利用HTML设计简单网页用HTML搭建简单的网页?在建设完成静态Web网站之后,可以重点学习动态Web程序的开发,典型的开发语言包括ASP、ASPNET、 JSP, PHP等。
(3)典型的Web服务离不开数据库的支持,那么典型的数据库有哪些?如何应用? Access、 MySql、MS SqlServer、 Oracle 等典型数据库的安装与配置等是怎么样的Windows上常用数据库的安装与配置?什么是SQL,典型的新闻发布网站是如何设计的?
(4)在了解了上述Web知识之后,我们就可以进入Web安全的世界,比如, 什么是SQL注入,什么是XSS注入,什么是CSRF,这些攻击能够发生的原因是什么?如何防范?网络上的那么多Web网站,能否自己独立发现一个上述漏洞?
(5)此外,Web安全还有Web服务器、数据库服务器等本身的漏洞,比如,什么是弱口令,服务器为了方便管理会经常开启3389端口,这个端口有什么用?如何能够猜解出管理员的弱口令,同时服务器又开放了3389 端口,会产生什么样的后果?
6)典型的数据库,如MS SqlServer有哪些经常被利用的漏洞?其默认登陆账户是什么? MySql的默认开放端口是什么? HTTP协议的默认开放端口是什么?
扫描器及协议分析
(1)怎么样获取服务器的开放端口?怎么样扫描目标主机中存在的漏洞?
Nmap有哪些功能?如何使用?
(2)在协议分析方面,WireShark有什么用?能够用来发起什么攻击?举例而
言,常规的Web程序中,用户名和密码等这些敏感信息一般会通过POST数据
包发送给Web服务器,在这样的过程中,能否用WireShark进行拦截并窃取敏感
信息?
(3)在协议分析这一块,如果不了解协议格式,也是很难进行的。这个时候
需要去了解常用的协议格式,比如HTTP协议,TCP协议,UDP协议等。HTTP
协议中的POST方式和GET方式有什么区别? TCP和UDP有什么区别?大家常
用的腾讯QQ通信是使用的哪种协议?
二进制程序的逆向分析
1)二进制程序的逆向分析,一个重要的应用方向是软件破解,在这个方向上,一个重要的网站是看雪: 看雪
2)在逆向分析方面,典型的工具有IDA Pro和OllyDbg。OllyDbg是一款使用起来比较简单的调试工具。当然还有很多其他优秀的调试工具,可见http://www.pediy.com/tools.htm。
3)看雪上面有很多CrackMe,如果掌握了OllyDbg 的使用,可以尝试去看雪找一些简单的CrackMe来实际破解。
漏洞挖掘
漏洞挖掘和利用一直以来都是信息安全的焦点和热点。想要入门,首先要了解缓冲区溢出漏洞的发生原理。在学习并掌握了C语言之后,了解缓冲区溢出的发生原理并不困难,什么是整形溢出、堆溢出、栈溢出?什么是格式化字符串溢出?C语言中的哪些函数或者操作容易导致缓冲区溢出?
在了解了缓冲区溢出原理之后,需要再进一步了解缓冲区溢出的防护方法,比如,如何在使用高级语言的时候进行边界检查?在漏洞挖掘方面,给定一段源代码,能够通过审计该段高级语言,检查出是否有安全漏洞?如果没有源代码,只有二进制程序,如何发现其中的安全漏洞?这个时候IDA Pro和OllyDbg又一次登场了。使用IDA Pro的hex-ray插件,可以把二进制程序反汇编成类C语言,在反汇编得到的类C语言上,可以看到那些容易导致缓冲区溢出的脆弱性函数,随后可通过设置断点等方式,通过动态调试的方法来检查程序是否含有漏洞。
漏洞利用
在已获得漏洞之后,使用该漏洞能够发起哪些攻击?这时候需要了解的内容有:StackSmashing,shellcode等。
操作系统和编译器设计了哪些用于防范软件漏洞的措施?什么是编译器的gs选项?什么是“栈不可执行”保护(也称为DEP),什么是地址空间随机化ASLR,有什么作用。攻击者也设计出了新的漏洞利用攻击方法以绕过操作系统或编译器的保护。高级漏洞利用技巧都有哪些? sEh劫持的原理是什么? Windows最新版的操作系统中又采用了哪些措施来防止SHE劫持?什么是面向返回的编程攻击(Returm oriented programming.也称之为ROP。相似的攻击还有Ret2libc, JOP, COP等。
在漏洞利用的防护方面,防火墙和IDS等也是隔离并检查shellcode 的关键利器,其作用是通过过滤网络报文,分析shellcode的哈希值或者其它关键字等,判断网络报文中是否疑似含有shellcode, 并把疑似报文丢弃等。在这种情况下,攻击需要解决的问题就是shellode的免杀,如何对shellcode 进行变形,如何给shellcode加壳?
漏洞利用绕过技巧
DEP、ASLR、ROP、SEH劫持、SEHOP、safeSEH、 HeapSpray、 cookie/GS选择项。
Oday书上基本都有,去httt://www.exploit-db.con/搜索一下,可以下载到一些小的程序来调一调
DEP:
即DataExecutionPrevention,不允许执行“数据”。在ARM上,数据和代码分开存放,不存在此问题。X64 AMD或者i系列Intel 处理器上,微软使用NX技术,记录内存页的属性,即是否是代码。如果一个页是数据,EiP 指向了它,
系统会自动报错,从而阻止的非法数据被执行。
SEH:
当函数发生异常的时候,系统会首先尝试使用离异常最近的SEH结构体来
处理异常。异常处理程序可以选择返回继续执行刚才出错的指令、处理异常或者
不处理异常。如果不处理,则系统继续沿着调用轨迹向上寻找其他SEH结构,
直到异常被处理(处理程序不是选择"不处理异常")。如果所有的用户定义的异常都不选择处理,则最终会达到进程异常处理的SEH,被称为UEF,即Unhandle Exception Filter。该SEH指向的处理程序会弹出错误提示框,然后结束程序。当然,最终的异常处理程序UEF也可以通过编程来修改。
在异常处理程序开始前,系统还会进行一次unwind操作,遍历从异常点开始的所有_ finally 代码块,并依次执行,执行完毕后才开始异常处理程序的执行。
如果_ finally 块出现了异常,则上-一个异常被丢弃,系统开始处理当前异常。
因为SEH结构放在栈中,因此可以通过栈溢出修改SEH中的异常处理程序指针指向shellcode,再人为引发异常,从而系统开始调用shellcode 来处理异常。
VEH:
即Vectored Exception Handler VEH是进程级的用户异常处理程序,可以由用户注册多个函数,这些函数将被连接成双向链表存入堆中。异常发生时,系统首先通知调试器,如果调试器不处理,则进入VEH的处理,然后才是SEH的处理。
HeapSpray:
首先构造1M的基本块,其中包含首部信息和数据,数据部分是nop和shellcode.这样的一个基本块中大部分都是nop指令。再将这样的基本块组成的数组存入堆中,只要能够从nop处开始执行,就一定会执行到shellode部分。
ASLR: .
Address Space Layout Randomization 通过将堆、栈等其实地址进行一定范围内的随机化,加大缓冲区溢出攻击的难度。
SEHOP/SafeSEH
SEH Overwrite Protection SEI覆 盖保护。该防护措施是指系统在使用栈上的SEH时首先验证其完整性。SEHOP是系统自带功能,不需要应用程序配置,只需要用户将其开启即可。
判断准则是:
1、SEH结构都必须在栈上;
2、最后一个SEH结构也必须在栈上;
3、所有的SEH结构都必须是4字节对齐的;
4、SEh结构中的handle (处理函数地址)必须不在栈上;
5、最后一个SEH结构的handle必须是ndll!FinalExceptionHandler函数;
6、最后一个SEH结构的next seh指针必须为特定值0xFFFFFF;可以看到,第四点要求使通过SEH跳转到栈上的shellcode不再可能。而且上述准则保证了SEH链的完整性,因而如果要通过覆盖修改单个SEH,几乎不.可能。可行的想法是伪造整个SEH链。
cookie/GS:
修改原来的栈结构: .
Stack: bottom … parameter-1 parameter-2 … parameter-n 返回地址、EBP后压压入一个随机数cookie,同时在.data段中保存他的一-个副本。函数返回时系统自动检测栈中的cookie和.data段中的cookie副本是否相同,如果不同则进入溢出处理程序,不会执行ret返回语句,从而避免了转到shellcode执行。
密码分析
在密码分析这一方面,大家需要了解主流的密码算法,如对称密码、公钥密
码、流密码、哈希密码算法等。
在攻击方面,什么是弱口令攻击?密码字典有什么用?典型的密码破解工具
有哪些?
当前的Web应用主要采取了哪些加密和编码算法?

推荐,网络安全中的漏洞挖掘实践合集,仅供大家学习参阅,包含内容如下: 针对现实应用的文本对抗攻击研究 安全众测下的漏洞发展新趋势 安卓应用漏洞挖掘 从0到1-发现与拓展攻击面 对基于Git的版本控制服务的通用攻击面的探索 对民用飞行控制系统固件的逆向与漏洞分析 卫星通信的安全缺陷 基于全流量的智慧漏洞挖掘 基于运行时类型嗅探技术提高模糊测试的漏洞发掘效果 漏洞挖掘进化论-推开xray之门 逆向在漏洞挖掘中的应用 苹果攻击面和漏洞挖掘自动化研究 如何从高赏金项目中拿到高危 如何去挖掘物联网环境中的高级恶意软件威胁 如何在3个月发现 12 个内核信息泄露漏洞 沙箱内持久化.行之有效的沙箱攻击新思路 深度解析Weblogic_XMLDecoder反序列化 使用数据流敏感模糊测试发现漏洞 锁不住的安全 谈谈工业协议转换器的一些问题 逃逸IE浏览器沙箱-在野0Day漏洞利用复现 为何自动化漏洞挖掘如此困难 现代可抵赖后门研究 一扇虚掩的大门-现代智能系统的重要攻击面 源代码漏洞挖掘 远程root现代安卓设备 在现代Windows内核中发现存在20年的漏洞 针对智能设备漏洞挖掘的一些新方法 AI用于软件漏洞挖掘 AndroidWebView安全攻防指南2020 Java反序列化漏洞自动挖掘方法 macOS从运行库劫持到内核提权 MTK安全启动大剖析.CIS大会分论 MyBatis框架下SQL注入解决方案 Qemu-kvm和ESXi虚拟机逃逸实例分享 WEB常见漏洞与挖掘技巧研究 Web漏洞挖掘速成特训营 混合式漏洞挖掘研究进展
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值