‘壹’ 文件包含CTF题目
1、链接: 南京邮电大学网络攻防平台文件包含150
2、解题方法:
使用 php://filter 协议读取index文件。
3、源码分析
对data、input协议及../进行了过滤,但能通过filter协议进行读取。
1、链接: BugkuCTF本地包含60
2、解题方法
拼接eval构造payload。
3、源码分析
这里注意php语言的一些变量定义及函数。
4、进阶
该题和php变量定义的理解联系紧密,可参考 博客 ,进一步学习。
1、链接: BugkuCTF本地包含2 150
2、解题方法
查看源码,发现upload.php,结合题目提示想到本地包含配合文件上传。
然鹅上传后感觉文件被秒删了,菜刀也没连接上。另找方法。
在图片马中修改payload为<script language=php>system("ls")</script>,利用文件包含列出当前目录,发现flag文件,再查看文件获得flag。
1、链接: I春秋“网络杯”CTF比赛 2017 二月场 50
2、解题方法
根据提示很容易测出文件包含漏洞。
发现无法写入php文件,利用system函数执行命令,获取当前目录文件。
利用 php://input 协议读取文件。
‘贰’ ctf 中sqlmap的题目源代码怎么写
栅栏加密法是一种比较简单快捷的加密方法。栅栏加密法就是把要被加密的文件按照一上一下的写法写出来,再把第二行的文字排列到第一行的后面。相应的,破译方法就是把文字从中间分开,分成2行,然后插入。栅栏加密法一般配合其他方法进行加密。
例:
加密information
分行
i f r a i n
n o m t o
合并
ifrainnomto
完成~
‘叁’ CTF各个方向的具体内容是什么
如下:
Reverse
题目涉及到软件逆向、破解技术等,要求有较强的反汇编、反编译功底。主要考查参赛选手的逆向分析能力。
所需知识:汇编语言、加密与解密、常见反编译工具
Pwn
Pwn 在黑客俚语中代表着攻破,获取权限,在 CTF 比赛中它代表着溢出类的题目,其中常见类型溢出漏洞有整数溢出、栈溢出、堆溢出等。主要考查参赛选手对漏洞的利用能力。
所需知识:C,OD+IDA,数据结构,操作系统
Web
Web 是 CTF 的主要题型,题目涉及到许多常见的 Web 漏洞,如 XSS、文件包含、代码执行、上传漏洞、SQL 注入等。也有一些简单的关于网络基础知识的考察,如返回包、TCP/IP、数据包内容和构造。可以说题目环境比较接近真实环境。
所需知识:PHP、python、TCP/IP、SQL
Crypto
题目考察各种加解密技术,包括古典加密技术、现代加密技术甚至出题者自创加密技术,以及一些常见编码解码,主要考查参赛选手密码学相关知识点。通常也会和其他题目相结合。
所需知识:矩阵、数论、密码学
Misc
Misc 即安全杂项,题目涉及隐写术、流量分析、电子取证、人肉搜索、数据分析、大数据统计等,覆盖面比较广,主要考查参赛选手的各种基础综合知识。
所需知识:常见隐写术工具、Wireshark 等流量审查工具、编码知识
Mobile
主要分为 Android 和 iOS 两个平台,以 Android 逆向为主,破解 APK 并提交正确答案。
所需知识:Java,Android 开发,常见工具
CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。
发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯”。
CTF 为团队赛,通常以三人为限,要想在比赛中取得胜利,就要求团队中每个人在各种类别的题目中至少精通一类,三人优势互补,取得团队的胜利。同时,准备和参与 CTF 比赛是一种有效将计算机科学的离散面、聚焦于计算机安全领域的方法。
赛事介绍
CTF是一种流行的信息安全竞赛形式,其英文名可直译为“夺得Flag”,也可意译为“夺旗赛”。
其大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为“Flag”。
CTF竞赛模式具体分为以下三类:
解题模式(Jeopardy)
在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与,这种模式的CTF竞赛与ACM编程竞赛、信息学奥赛比较类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛。题目主要包含逆向、漏洞挖掘与利用、Web渗透、密码、取证、隐写、安全编程等类别。
攻防模式(Attack-Defense)
在攻防模式CTF赛制中,参赛队伍在网络空间互相进行攻击和防守,挖掘网络服务漏洞并攻击对手服务来得分,修补自身服务漏洞进行防御来避免丢分。
攻防模式CTF赛制可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负,是一种竞争激烈,具有很强观赏性和高度透明性的网络安全赛制。在这种赛制中,不仅仅是比参赛队员的智力和技术,也比体力(因为比赛一般都会持续48小时及以上),同时也比团队之间的分工配合与合作。
混合模式(Mix)
结合了解题模式与攻防模式的CTF赛制,比如参赛队伍通过解题可以获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负。采用混合模式CTF赛制的典型代表如iCTF国际CTF竞赛。
‘肆’ CTF-WEB-20180821-#XXE#JSON
-#XXE#json ——CTF{XxE_15_n0T_S7range_Enough}
API调用
请设法获得目标机器/home/ctf/flag.txt中的flag值。 http://web.jarvisoj.com:9882/
3.6 提示中说flag在/home/ctf/flag.txt中,那么应该是通过api的某些漏洞能够达到任意文件读取的效果。那么是什么漏洞呢……
4.于是大家殊!途!同!归!来到这一步——直接看wp()。原来是XXE……
Content-Type: application/xml。并在body增加
要时时刻刻抱着一颗搞事的心,到处改()
这次的题目其实是做过的,但是又不记得了……虽然说温故知新,但是怎么温出这么多故(),参考资料明天再看吧我困了……
‘伍’ 使用docker部署ctf_web题目
又是一年一度首都安全日,社团内部最近要举办次小比赛,萌新瑟瑟发抖地出了几个web题。在部署题目的过程中才真正感受到docker的强大与方便,这边稍微做个记录。
这个 链接 十分详细。
膜一波 大佬
注意:Mac终端即可上传文件到服务器。
详见: Mac上传文件到linux服务器
‘陆’ 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流量分析之题型深度解析
0x01 介绍
在CTF比赛中,对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供一个包含流量数据的pcap文件,参赛选手通过该文件筛选和过滤其中无关的流量信息,根据关键流量信息找出flag或者相关线索。
pcap流量包的分析通常都是通过图形化的网络嗅探器——wireshark进行的,这款嗅探器经过众多开发者的不断完善,现在已经成为使用最为广泛的安全工具之一。在之前的文章中,斗哥已经为大家介绍了 wireshark的基本使用 。接下来,斗哥将为大家介绍目前CTF流量分析中的经典题型和解题思路。
0x02 经典题型
CTF题型主要分为流量包修复、WEB流量包分析、USB流量包分析和其他流量包分析。
■ 流量包修复
比赛过程中有可能会出现通过wireshark打开题目给的流量包后提示包异常的情况,如下图所示:
解题思路:
通过在线pacp包修复工具进行修复:
http://f00l.de/hacking/pcapfix.php
练练手
第一届 “网络杯” 信息安全攻防总决赛 线上选拔赛:find the flag
pacp文件地址: https://static2.ichunqiu.com/icq/resources/fileupload/CTF/BSRC/2017/BSRC3-1/findtheflag.cap
■ WEB流量包分析
WEB数据包分析的题目主要出现WEB攻击行为的分析上, 典型的WEB攻击行为有:WEB扫描、后台目录爆破、后台账号爆破、WEBSHELL上传、SQL注入等等。
题型:
通过给出的流量包获取攻击者使用的WEB扫描工具。
解题思路:
常见的WEB扫描器有Awvs,Netsparker,Appscan,Webinspect,Rsas(绿盟极光),Nessus,WebReaver,Sqlmap等。要识别攻击者使用的是哪一种扫描器,可通过wireshark筛选扫描器特征来得知。
相关命令:http contains “扫描器特征值”。
常见的扫描器特征参考: https://www.freebuf.com/column/156291.htm
练练手
安恒八月月赛流量分析:黑客使用的是什么扫描器?
pacp文件地址:
链接: https://pan..com/s/1bGEIPeXDCbhybmWOyGr8Og 提取码:q6ro
题型:
已知攻击者通过目录爆破的手段获取了网站的后台地址,请通过给出的流量包获取后台地址。
解题思路:
要获取流量包中记录的后台地址,可通过wireshark筛选后台url特征来得知。
相关命令:http contains “后台url特征”。
常见后台url特征参考: https://www.freebuf.com/column/156291.html
练练手
安恒八月月赛流量分析:黑客扫描到的后台登录地址是什么?
pacp文件地址:
链接: https://pan..com/s/1bGEIPeXDCbhybmWOyGr8Og 提取码:q6ro
题型:
已知攻击者通过暴力破解的手段获取了网站的后台登陆账号,请通过给出的流量包获取正确的账号信息。
解题思路:
WEB账号登陆页面通常采用post方法请求,要获取流量包中记录的账号信息可通过wireshark筛选出POST请求和账号中的关键字如‘admin’。
相关命令:http.request.method=="POST" && http contains == "关键字"。
练练手
安恒八月月赛流量分析:黑客使用了什么账号密码登录了web后台?
pacp文件地址:
链接: https://pan..com/s/1bGEIPeXDCbhybmWOyGr8Og 提取码:q6ro
题型:
已知攻击者上传了恶意webshell文件,请通过给出的流量包还原出攻击者上传的webshll内容。
解题思路:
Webshell文件上传常采用post方法请求,文件内容常见关键字eval,system,assert要。获取流量包中记录的webshell可通过wireshark筛选出POST请求和关键字.
相关命令:http.request.method=="POST" && http contains == "关键字"
练练手
安恒八月月赛流量分析:黑客上传的webshell文件名是?内容是什么?
pacp文件地址:
链接: https://pan..com/s/1bGEIPeXDCbhybmWOyGr8Og 提取码:q6ro
■ USB流量包分析
USB流量指的是USB设备接口的流量,攻击者能够通过监听usb接口流量获取键盘敲击键、鼠标移动与点击、存储设备的铭文传输通信、USB无线网卡网络传输内容等等。在CTF中,USB流量分析主要以键盘和鼠标流量为主。
■ 键盘流量
USB协议数据部分在Leftover Capture Data域中,数据长度为八个字节。其中键盘击键信息集中在第三个字节中。数据如下图所示:
如上图所示击键信息为0x05,对应的按键为“B“。
具体的键位映射关系可参考:《USB键盘协议中键码》中的HID Usage ID,链接: https://wenku..com/view/9050c3c3af45b307e971971e.html
题型:**
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文件地址:
链接: https://pan..com/s/1bGEIPeXDCbhybmWOyGr8Og
提取码:q6ro
python键盘键码转换脚本:同上
■ 鼠标流量
USB协议鼠标数据部分在Leftover Capture Data域中,数据长度为四个字节。
其中第一个字节代表按键,当取0x00时,代表没有按键、为0x01时,代表按左键,为0x02时,代表当前按键为右键。第二个字节可以看成是一个signed byte类型,其最高位为符号位,当这个值为正时,代表鼠标水平右移多少像素,为负时,代表水平左移多少像素。第三个字节与第二字节类似,代表垂直上下移动的偏移。数据如下图所示:
如上图所示数据信息为0x00002000,表示鼠标垂直向上移动20。
题型 :
Flag藏于usb流量中,通过USB协议数据中的鼠标移动轨迹转换成Flag。
解题思路:
练练手
这是一道鼠标流量分析题。
pacp文件地址:
链接: https://pan..com/s/1bGEIPeXDCbhybmWOyGr8Og 提取码:q6ro
python鼠标数据转换脚本:同上
■ 其他流量包分析
除了常规的WEB和USB流量外,可能还存在诸如SMTP,Telnet等流量,均与WEB流量分析类似,不再赘述。
0x03 总结
以上为斗哥了解的流量分析在CTF比赛中的基本题型,欢迎大家补充。
参考:
《记一道USB流量分析CTF题》, https://blog.csdn.net/qq_36609913/article/details/78578406
CTF Wiki, https://ctf-wiki.github.io/ctf-wiki/introction/resources/
‘捌’ [第四届世安杯](web)writeup
利用ereg和strops处理数组的漏洞,提交?password[]=1
flag{Maybe_using_rexpexp_wasnt_a_clever_move}
观察链接,file后面是一个base64,解码为key.txt并没有什么用。将index.phpbase64,然后不断修改line读取源码。
view-source:http://ctf1.shiyanbar.com/shian-quqi/index.php?line=&file=dGhpc2lzX2ZsYWcucGhw
flag{UHGgd3rfH*(3HFhuiEIWF}
最后:
x1=1a&x2={"x21":"2018a","x22":[[0],0]}&x3=XIPU18570
绕过x3的脚本
CTF{Php_1s_bstl4_1a}
源码提示:``,那就直接进行爆破好了
脚本哪错了?没跑出来,不懂
读取class.php:
http://ctf1.shiyanbar.com/shian-/index.php?user=http://120.27.32.227/3.txt&file=php://filter/convert.base64-encode/resource=class.php&pass=1
读取index.php:
再通过序列化读取flag:
http://ctf1.shiyanbar.com/shian-/index.php?user=http://120.27.32.227/3.txt&file=class.php&pass=O:4 :"Read":1:{s:4:"file";s:57:" php://filter/read=convert.base64-encode/resource=f1a9.php ";}
哦豁。。第一个也可以用 php://input 而不是远程包含绕过
flag_Xd{hSh_ctf:e@syt0g3t}
小记:emm....这种水平的比赛...确实对于某些水平来是浪费时间...感觉自己到了一个瓶颈,难的比赛又不会,一些比较简单的所获甚微。哎....还是要学啊
‘玖’ ctfshow-SSRF篇
参考: https://blog.csdn.net/miuzzx/article/details/111992415
payload:
使用file伪协议看到的flag.php源码如下:
要求是 http 或者 https 协议,以及过滤了 localhost 和 127.0.0.1 。
额为什么 preg_match() 里面没有指定对谁匹配,所以上一题的payload中的http协议的是可以使用的,file伪协议的过不了第一层判断。
不过如果的确做了有效的正则匹配,那么可以127.0.1 、127.1或者转成16进制或者8进制绕过,payload如下:
使用进制转换或者127.1绕过:
把1和0都ban了,可以修改自己域名的A记录为127.0.0.1
A(Address)记录是地址记录,用来指定主机名(或域名)对应的IP地址记录,通过A记录,可以设置不同域名指向不同的IP。
payload如下:
也可以搭一个302跳转,不过也是要有域名的 参考 :
要求host的长度小于等于5,使用如下payload:
还可找一个域名长度不大于5的域名 A 记录解析到127.0.0.1。
要求host长度小于等于3,使用如下payload:
gethostbyname 返回主机名对应的 IPv4地址。
filter_var() 过滤器要求解析出来的ip地址是有效ip,并且不是私有ip或者不是保留ip,所以之前把自己域名的A记录设置为127.0.0.1就不可行了,解析出来的ip是保留ip。
可以使用302重定向,vps搭一个:
payload如下:
还有一个方法是DNS重绑定漏洞,参考:
浅谈DNS重绑定漏洞
具体操作如下:访问 http://ceye.io/ 并注册用户,在这儿进行DNS重绑定:
多访问几次即可。
要求解析完的url以 http://ctf. 开头,以 show 结尾,payload如下:
这样 parse_url() 真正解析出来的host是127.0.0.1, ctf. 变为了user字段,可以尝试本地解析一下:
结果如下:
可以参考: https://ctf-wiki.org/web/ssrf/#_3
提示是打无密码的mysql,抓包发现ssrf漏洞应该在check.php中:
输入用户名和想要执行的sql命令:
get方法的url参数,利用ssrf打redis,同上:
然后访问网站根目录下的shell.php即可。
‘拾’ bugku_ctf,web第四题_post
这题跟第三题几乎一样,只不过是将get方法换为了post方法。
使用插件如postman, hackbar, http request maker等等,很多插件。选择post模式,然后在 Body Data (也就是请求主体,请求内容)部分输入 what=flag ,提交即可。