CTF-网络信息安全攻防学习平台(脚本关)

    技术2022-07-10  155

    脚本关

    第一关第二关第三关第四关第五关第六关第七关第八关第九关第十关第十一关第十二关第十三关第十四关第十五关


    题库地址:http://hackinglab.cn


    第一关

    题目:         key又又找不到了         key分值: 200         key小明这次哭了,key又找不到了!!! key啊,你究竟藏到了哪里,为什么我看到的页面上都没有啊!!!!!! Writeup: 点击(到这里找key_)抓包后,鼠标右键,选择send to Repeater 点击go发送数据包后,在返回包即可看到key值

    第二关

    题目:         快速口算         分值: 350         小明要参加一个高技能比赛,要求每个人都要能够快速口算四则运算,2秒钟之内就能够得到结果,但是小明就是一个小学生没有经过特殊的培训,那小明能否通过快速口算测验呢?看到的页面上都没有啊!!!!!! Writeup: 每两秒会刷新一次算术题,当然我们人工算是不可能完成的,思路就是写个python脚本,爬取这段算术题,然后也是利用脚本提交,提交之后查看返回包就可以看到key值

    这里利用到了requests模块去爬取题目,然后利用re模块匹配算术题

    import requests,re r = requests.Session() url='http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php' html=r.get(url).content results=eval(re.findall('([0-9].*)=<',html)[0]) data = {'v':results} print r.post(url,data=data).text

    第三关

    题目:         这个题目是空的         分值: 100         Tips:这个题目真不是随便设置的。 什么才是空的呢? 通关地址:没有,请直接提交答案(小写即可) Writeup: 写过脚本的人大家都知道空就是null,null就是正确答案

    第四关

    题目:         怎么就是不弹出key呢?         分值: 150         提交说明:提交前14个字符即可过关 Writeup: 查看源代码,可以看到 创建个html文件,将代码复制下来,去除掉前面定义的一些函数 弹窗代码改成:

    alert("key is first 14 chars "+d.substr(0,14));

    用浏览器打开html文件就能弹出key值了

    第五关

    题目:         逗比验证码第一期         分值: 100         逗比的验证码,有没有难道不一样吗? Writeup: 验证码失效,进入靶场后可以看到有提示:登陆密码是4位纯数字数,第一位不为0 只要我们输入正确的账号和正确的验证码后,一直点击go发包,可以看到验证码并没有更新,并且一直提示pwd error,说明只要我们只要保持当前会话,验证码就不会失效 右键选择send to intruder(发送到爆破模块) 1.选择Clear(清除当前已选的标记) 2.鼠标左键框选密码 3.点击Add(标记需要爆破的值) 1.选择payloads(设置我们爆破密码的规则) 2.选择Numbers(数字类型的爆破) 3.from是从多少开始,to是到多少结束    step是数字爆破的规则,如果设置2的话,他就会按照1000,1002,1004…这种爆破规则去进行爆破(相当去跳过1个数值),至于这个设置大家可以亲自实验,可以很明显的看出效果 4.先单击一次hex,再点击Decimal(这一步是为了刷新我们设置好的规则,意义不大,如果不进行这一步的话,payload count那里会一直为0) 点击又上角的Start attack(开始爆破) 爆破完成后,点击length(一般登陆成功和密码错误的返回包值是不一样的,所以一般看返回值就能看出哪一个是登陆成功的),查看正确密码的数据包,即可看到key

    第六关

    题目:         逗比验证码第二期         分值: 150         验证便失效的验证码 Writeup: 还是验证码失效题,抓包的时候删除验证码的值,就能绕过 按照上一题的爆破步骤去爆破,即可拿到key

    第七关

    题目:         逗比的验证码第三期(SESSION)         分值: 150         尼玛,验证码怎么可以这样逗比。。         验证码做成这样,你家里人知道吗? Writeup: 还是验证码失效题,这题需要连带cookie一起删除(cookie会匹配一个验证码,存在会话凭证时,一个验证码用过一次后就不能重复使用了,所以连同cookie一起删除即可) 继续按照第五题的爆破步骤去爆破,即可获取key

    第八关

    题目:         微笑一下就能过关了         分值: 150         尼玛,碰到这样的题我能笑得出来嘛… Writeup: php伪协议题 查看源代码时可以看到一个超链接,点击可以看到源码 可以看到php源码:

    <?php header("Content-type: text/html; charset=utf-8"); if (isset($_GET['view-source'])) { show_source(__FILE__); exit(); } include('flag.php'); $smile = 1; if (!isset ($_GET['^_^'])) $smile = 0; if (preg_match ('/\./', $_GET['^_^'])) $smile = 0; if (preg_match ('/%/', $_GET['^_^'])) $smile = 0; if (preg_match ('/[0-9]/', $_GET['^_^'])) $smile = 0; if (preg_match ('/http/', $_GET['^_^']) ) $smile = 0; if (preg_match ('/https/', $_GET['^_^']) ) $smile = 0; if (preg_match ('/ftp/', $_GET['^_^'])) $smile = 0; if (preg_match ('/telnet/', $_GET['^_^'])) $smile = 0; if (preg_match ('/_/', $_SERVER['QUERY_STRING'])) $smile = 0; if ($smile) { if (@file_exists ($_GET['^_^'])) $smile = 0; } if ($smile) { $smile = @file_get_contents ($_GET['^_^']); if ($smile === "(●'◡'●)") die($flag); } ?>

    题意是 输入了. % 数字 http https ftp telnet _ 如果匹配到了,$smile值就会为0

    file_exists()函数会判断文件存不存在,如果不存在,则返回false,如果存在返回true。 但这里用了if条件,如果文件存在,则$smile=0 file_get_contents()把整个文件读入一个字符串中,但我们并不知道文件名,而且文件名内容要等于(●’◡’●),不过data协议可以实现这类方法 1.匹配字符串中,笑脸得^_^与匹配字符串_有冲突,可以利用url编码绕过 2.data协议使用方法,使用第一种方法就能达到获取flag

    data:,<文本数据> data:text/plain,<文本数据> data:text/html,<HTML代码> data:text/html;base64,<base64编码的HTML代码> data:text/css,<CSS代码> data:text/css;base64,<base64编码的CSS代码> data:text/javascript,<Javascript代码> data:text/javascript;base64,<base64编码的Javascript代码> data:image/gif;base64,base64编码的gif图片数据 data:image/png;base64,base64编码的png图片数据 data:image/jpeg;base64,base64编码的jpeg图片数据 data:image/x-icon;base64,base64编码的icon图片数据

    payload:

    ?^%5f^=data:,('◡')

    第九关

    题目:         逗比的手机验证码         分值: 150         你的手机号码是13388886666,验证码将会以弹窗的形式给出 Writeup: 验证码与手机号未绑定漏洞 先利用我们的手机号进行登陆 他会给提示,需要用13388886667这个手机号登陆 我们返回刚才登陆页面,用我们的手机号重新获取一下验证码, 然后修改手机号码为13388886667 点击登陆之后就可以看到key值了 一般来说短信验证码仅能使用一次,验证码和手机号未绑定,验证码一段时期内有效。 关于验证码其他漏洞的讲解可以观看以下文章: https://blog.csdn.net/Sunnyyou2011/article/details/79803481

    第十关

    题目:         基情燃烧的岁月         分值: 150         Tips:你是一名黑客,你怀疑你的“(男/女)闺蜜”的出轨了,你要登陆TA手机的网上营业厅查看详单,一探究竟! 闺蜜手机号码:13388886666 Writeup: 验证码爆破漏洞,服务端未对验证时间、次数进行限制。 进入题目,点击获取验证码后,提示验证码是3位数,不以0开头 输入验证码后,拦截数据包,发送到intruder进行爆破 标记验证码位 设置好数字之间的长度,就可以开始进行爆破了 找到正确的验证码提交时,他给了下一个提示,需要我们再登陆13399999999手机号 利用刚才相同的手法,13399999999手机号获取验证码,爆破验证码成功后即可看到key

    第十一关

    题目:         验证码识别         分值: 350         验证码识别         Tips:验证码依然是3位数 Writeup: 利用验证码识别工具然后进行爆破 利用工具:Pkav HTTP Fuzzer

    进入靶场,先获取验证码 输入手机验证码以及图片验证码,然后进行抓包 复制数据包到Pkav HTTP Fuzzer ,标记需要爆破的值 在Pkav HTTP Fuzzer 右边设置爆破手机验证码的字典规则 复制图片验证码 选择图片验证码识别 1.选择图片验证码识别 2.填入验证码图片地址 3.设置识别字符 4.识别图片测试 选择重放选项,设置发包线程,验证码长度(多线程会失败,大家可以自行测试) 开始爆破验证码 有时不会成功,可能在运气不好的时候,正好爆破那个验证码,图片正好识别出错(我就遇到过一次 - -)

    点击长度(和burp suite一样,成功和失败的返回长度是不一样的),查看返回包就可以看到flag了

    第十二关

    题目:         XSS基础关         分值: 50         XSS基础:很容易就可以过关.XSS类题目必须在平台登录才能进行.登录地址请参考左侧<子系统> Writeup: 在输入框输入xss代码,能弹窗即可获取key

    <script>alert(HackingLab)</script>

    第十三关

    题目:         XSS基础2:简单绕过         分值: 100         很容易就可以过关. Writeup: xss绕过 过滤了<script>标签,当我们输入<script>会提示XSS_SCRIPT_DETECTED!!! 利用img标签绕过并弹窗

    <img src=# onerror=alert(HackingLab)>

    第十四关

    题目:         XSS基础2:简单绕过         分值: 100         很容易就可以过关. Writeup: 查看源代码,我们输入payload的位置在value中 1.输入的内容被包含在 value=’’ 2.过滤了=alert() <script>等

    将payload两旁增加单引号’,alert利用unicode编码绕过

    http://tool.chinaz.com/tools/unicode.aspx 构造payload,输入到填写框提交。

    ' οnmοuseοver=\u0061\u006c\u0065\u0072\u0074(HackingLab) id='

    此次用的是onmouseover事件,当鼠标触碰到Welcome旁边的选框时,会触发弹窗

    第十五关

    题目:         Principle很重要的XSS         分值: 300         原理/原则/理念很重要…不是所有的xss都叫特仑苏… _         Take it easy! Writeup: 看源代码,可以看到我们输入的内容会存在a标签中 1.输入的内容会在a标签的href属性中。 2.防御了javascript,alert等 3.<>被转换成了空

    a标签中href属性中加入javascript这是最常用的调用的办法 但是我们输入了javascript会被过滤掉 换个思路,<>会被转换成空,那我们在javascript和alert中间加入<>,这也让就绕过字符串限制了

    pyaload:

    javascri<>pt:aler<>t(HackingLab)

    输入payload后提交,点击跳转链接,就能实现弹窗了

    Processed: 0.010, SQL: 9