ctf黑客大赛_ctf黑客编程基础题
文章栏目:
- 1、CTF流量分析之题型深度解析
- 2、ctf一般多少题
- 3、零基础怎么入门ctf
- 4、CTF新手如何入门?
CTF流量分析之题型深度解析
0x01 介绍
在CTF比赛中,对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供一个包含流量数据的pcap文件,参赛选手通过该文件筛选和过滤其中无关的流量信息,根据关键流量信息找出flag或者相关线索。
pcap流量包的分析通常都是通过图形化的网络嗅探器——wireshark进行的,这款嗅探器经过众多开发者的不断完善,现在已经成为使用最为广泛的安全工具之一。在之前的文章中,斗哥已经为大家介绍了 wireshark的基本使用 。接下来,斗哥将为大家介绍目前CTF流量分析中的经典题型和解题思路。
0x02 经典题型
CTF题型主要分为流量包修复、WEB流量包分析、USB流量包分析和其他流量包分析。
■ 流量包修复
比赛过程中有可能会出现通过wireshark打开题目给的流量包后提示包异常的情况,如下图所示:
解题思路:
通过在线pacp包修复工具进行修复:
练练手
第一届 “百度杯” 信息安全攻防总决赛 线上选拔赛:find the flag
pacp文件地址:
■ WEB流量包分析
WEB数据包分析的题目主要出现WEB攻击行为的分析上, 典型的WEB攻击行为有:WEB扫描、后台目录爆破、后台账号爆破、WEBSHELL上传、SQL注入等等。
题型:
通过给出的流量包获取攻击者使用的WEB扫描工具。
解题思路:
常见的WEB扫描器有Awvs,Netsparker,Appscan,Webinspect,Rsas(绿盟极光),Nessus,WebReaver,Sqlmap等。要识别攻击者使用的是哪一种扫描器,可通过wireshark筛选扫描器特征来得知。
相关命令:http contains “扫描器特征值”。
常见的扫描器特征参考:
练练手
安恒八月月赛流量分析:黑客使用的是什么扫描器?
pacp文件地址:
链接: 提取码:q6ro
题型:
已知攻击者通过目录爆破的手段获取了网站的后台地址,请通过给出的流量包获取后台地址。
解题思路:
要获取流量包中记录的后台地址,可通过wireshark筛选后台url特征来得知。
相关命令:http contains “后台url特征”。
常见后台url特征参考:
练练手
安恒八月月赛流量分析:黑客扫描到的后台登录地址是什么?
pacp文件地址:
链接: 提取码:q6ro
题型:
已知攻击者通过暴力破解的手段获取了网站的后台登陆账号,请通过给出的流量包获取正确的账号信息。
解题思路:
WEB账号登陆页面通常采用post方法请求,要获取流量包中记录的账号信息可通过wireshark筛选出POST请求和账号中的关键字如‘admin’。
相关命令:http.request.method=="POST" http contains == "关键字"。
练练手
安恒八月月赛流量分析:黑客使用了什么账号密码登录了web后台?
pacp文件地址:
链接: 提取码:q6ro
题型:
已知攻击者上传了恶意webshell文件,请通过给出的流量包还原出攻击者上传的webshll内容。
解题思路:
Webshell文件上传常采用post方法请求,文件内容常见关键字eval,system,assert要。获取流量包中记录的webshell可通过wireshark筛选出POST请求和关键字.
相关命令:http.request.method=="POST" http contains == "关键字"
练练手
安恒八月月赛流量分析:黑客上传的webshell文件名是?内容是什么?
pacp文件地址:
链接: 提取码:q6ro
■ USB流量包分析
USB流量指的是USB设备接口的流量,攻击者能够通过监听usb接口流量获取键盘敲击键、鼠标移动与点击、存储设备的铭文传输通信、USB无线网卡网络传输内容等等。在CTF中,USB流量分析主要以键盘和鼠标流量为主。
■ 键盘流量
USB协议数据部分在Leftover Capture Data域中,数据长度为八个字节。其中键盘击键信息集中在第三个字节中。数据如下图所示:
如上图所示击键信息为0x05,对应的按键为“B“。
具体的键位映射关系可参考:《USB键盘协议中键码》中的HID Usage ID,链接:
题型:**
Flag藏于usb流量中,通过USB协议数据中的键盘键码转换成键位。
解题思路:
1.使用kali linux中的tshark 命令把cap data提取出来:tshark -r usb.pcap -T fields -e usb.capdata usbdata.txt,并去除空行。
练练手
安全评测人员在对某银行卡密码输入系统进行渗透测试,截获了一段通过USB键盘输入6位数字密码的流量,其中也包含了一些其他无关的USB设备的流量,你能从中恢复出6位数字密码吗?最终提交的flag格式为flag。
pacp文件地址:
链接:
提取码:q6ro
python键盘键码转换脚本:同上
■ 鼠标流量
USB协议鼠标数据部分在Leftover Capture Data域中,数据长度为四个字节。
其中第一个字节代表按键,当取0x00时,代表没有按键、为0x01时,代表按左键,为0x02时,代表当前按键为右键。第二个字节可以看成是一个signed byte类型,其最高位为符号位,当这个值为正时,代表鼠标水平右移多少像素,为负时,代表水平左移多少像素。第三个字节与第二字节类似,代表垂直上下移动的偏移。数据如下图所示:
如上图所示数据信息为0x00002000,表示鼠标垂直向上移动20。
题型 :
Flag藏于usb流量中,通过USB协议数据中的鼠标移动轨迹转换成Flag。
解题思路:
练练手
这是一道鼠标流量分析题。
pacp文件地址:
链接: 提取码:q6ro
python鼠标数据转换脚本:同上
■ 其他流量包分析
除了常规的WEB和USB流量外,可能还存在诸如SMTP,Telnet等流量,均与WEB流量分析类似,不再赘述。
0x03 总结
以上为斗哥了解的流量分析在CTF比赛中的基本题型,欢迎大家补充。
参考:
《记一道USB流量分析CTF题》,
CTF Wiki,
ctf一般多少题
ctf一般题目类型有七种,包括MISC、PPC、CRYPTO、PWN、REVERSE、WEB、STEGA。
1.MISC(Miscellaneous)类型,即安全杂项,题目或涉及流量分析、电子取证、人肉搜索、数据分析等等。
2.PPC(Professionally Program Coder)类型,即编程类题目,题目涉及到编程算法,相比ACM较为容易。
3.CRYPTO(Cryptography)类型,即密码学,题目考察各种加解密技术,包括古典加密技术、现代加密技术甚至出题者自创加密技术。这种4.PWN类型,PWN在黑客俚语中代表着攻破、取得权限,多为溢出类题目。
5.REVERSE类型,即逆向工程,题目涉及到软件逆向、破解技术。
6.STEGA(Steganography)类型,即隐写术,题目的Flag会隐藏到图片、音频、视频等各类数据载体中供参赛者获取。
7.WEB类型,即题目会涉及到常见的Web漏洞,诸如注入、XSS、文件包含、代码执行等漏洞。
零基础怎么入门ctf
首先要学习基础知识,推荐阅读CTF专业教程,了解ctf;从基础题出发。在学习过程中要适当地做一些关于理论知识的习题,加强理论了解。
1、CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。
2、CTF为移动通信离线计费过程中的逻辑功能实体。CTF提供计费信息,将计费信息组装成计费事件(如:ACR(Accounting Request,计费请求)),并将这些计费事件发送给CDF(Charging Data Function,计费数据功能)。
CTF竞赛模式具体分为以下三类:
1、解题模式(Jeopardy)
在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与。
这种模式的CTF竞赛与ACM编程竞赛、信息学奥赛比较类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛。题目主要包含逆向、漏洞挖掘与利用、Web渗透、密码、取证、隐写、安全编程等类别。
2、攻防模式(Attack-Defense)
在攻防模式CTF赛制中,参赛队伍在网络空间互相进行攻击和防守,挖掘网络服务漏洞并攻击对手服务来得分,修补自身服务漏洞进行防御来避免丢分。
攻防模式CTF赛制可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负,是一种竞争激烈,具有很强观赏性和高度透明性的网络安全赛制。
3、混合模式(Mix)
结合了解题模式与攻防模式的CTF赛制,比如参赛队伍通过解题可以获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负。采用混合模式CTF赛制的典型代表如iCTF国际CTF竞赛。
CTF新手如何入门?
CTF新手入门方法:
首先,你得有基本的编程语言基础(比如c语言,汇编,以及脚本语言(PHP,ASP,python)之类的),还有数学基础,当然那个天马行空的想象力也是很重要的,最最重要的是你要有一颗恒心,坚持下来当你有了以上这些基础知识以后,你就可以开始基础学习了。
刚开始可以尝试一下像黑客game这种小游戏,也可以尝试一下我们论坛的练习平台的分值比价低的题,因为这些基础题,一般的知识点都比较少,只有一个到两个左右,也便于理解。
然后当基础题不能满足你的时候,你就可以练习一下高分的题目,刚开始做高分题,可能会比较困难所以这时候,因该更加深入的学习一些脚本语言,汇编,信息安全知识等。
关于CTF主要考验的那几个方面的技能:
逆向工程:这是CTF试题中的一个大的考点,学习建议的话,建议深度学习一下C语言和需要汇编,汇编的话不要所有架构都学习。
web漏洞:这个方面的安全问题,可能来自于web服务器,数据库服务器,还有web应用程序本身,对于这方面的学习脚本语言是一个重中之重,像PHP这种一定要很熟练,而且对于数据库,操作系统的知识也是很重要的,需要深入了解的。
密码学:这个的学习需要了解主流的密码算法,如对称密码、公钥密码、流密码、哈希密码算法,序列密码等。还需要了解一下常见的密码破解工具,以及web目前常见的加密算法和编码方式。