【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

admin 2021年10月31日09:26:04评论242 views字数 8487阅读28分17秒阅读模式
【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

网安教育

培养网络安全人才

技术交流、学习咨询



1、寻找key

访问给出的链接:http://lab1.xseclab.com/xss1_30ac8668cd453e7e387c76b132b140bb/index.php,进入页面,有提示语在这里找到key,也是一个访问链接:http://lab1.xseclab.com/xss1_30ac8668cd453e7e387c76b132b140bb/search_key.php,访问新链接之后进入一个页面提示此处没有key,我们可以看到浏览器上面的uri已经不是search_key.php页,说明存在跳转。

 使用burpsuite对http://lab1.xseclab.com/xss1_30ac8668cd453e7e387c76b132b140bb/search_key.php的访问进行拦截。

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题


2、快速口算


 该题目是一个答案的提交题目,有限定时间,既然有限定时间,那就存在对时间修改的可能。访问给出的答题链接:http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php,随便输入答案点击提交,并使用burpsuite进行拦截。

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

 从拦截请求中未找到任何与时间有关的信息,而且每次访问http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php时给出的答案都是不一样的,使用python写个自动化请求的demo试一试。

 1#!/usr/bin/env python
2# -*- coding:utf-8 -*-
3import httplib
4import urllib
5
6headers0 = {"Cookie""PHPSESSID=975db232b65e274a92798918807e4676"}
7conn = httplib.HTTPConnection("lab1.xseclab.com")
8conn.request("GET",     "http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php", '', headers0)
9response = conn.getresponse()
10data = response.read()
11for line in data.split('n'):
12    if line.find('=<input type=') > 0:
13        pattern = line.split('=')[0]
14conn.close()
15
16headers1 = {"Cookie""PHPSESSID=975db232b65e274a92798918807e4676",
17           "Referer":     "http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php",
18           "Origin""http://lab1.xseclab.com",
19           "Content-Type""application/x-www-form-urlencoded"}
20params = urllib.urlencode({'v': eval(pattern)})  # type: str
21conn = httplib.HTTPConnection("lab1.xseclab.com")
22conn.request("POST",     "http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php", params, headers1)
23response = conn.getresponse()
24data = response.read()
25print(data)
26conn.close()


执行看到返回结果:key is 123iohHKHJ%^&*(jkh


3、这个题目是空的


这个题真的有点脑筋急转弯的意思,跟安全渗透感觉没啥关系,答主之前也试了好多种方法,后来才开始注意题目信息:什么才是空的呢?答主是做c语言的,空意味着NULL,题目要求小写,输入null即通过。


4、怎么就是不弹出key呢



 访问链接:http://lab1.xseclab.com/xss3_5dcdde90bbe55087eb3514405972b1a6/index.php,通过F12查看浏览器源代码,发现点击提示语应该执行javascript:a() js函数,函数中应该执行alert弹框一堆信息,此时却没有执行。于是把js核心函数复制出来,在浏览器的console窗口直接执行如下代码:


1var b=function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c]);return p}('1s(1e(p,a,c,k,e,r){e=1e(c){1d(c<a?'':e(1p(c/a)))+((c=c%a)>1q?1f.1j(c+1k):c.1n(1o))};1g(!''.1h(/^/,1f)){1i(c--)r[e(c)]=k[c]||e(c);k=[1e(e){1d r[e]}];e=1e(){1d'\\w+'};c=1};1i(c--)1g(k[c])p=p.1h(1l 1m('\\b'+e(c)+'\\b','g'),k[c]);1d p}('Y(R(p,a,c,k,e,r){e=R(c){S(c<a?\'\':e(18(c/a)))+((c=c%a)>17?T.16(c+15):c.12(13))};U(!\'\'.V(/^/,T)){W(c--)r[e(c)]=k[c]||e(c);k=[R(e){S r[e]}];e=R(){S\'\\\\w+\'};c=1};W(c--)U(k[c])p=p.V(Z 11(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);S p}(\'G(B(p,a,c,k,e,r){e=B(c){A c.L(a)};E(!\\\'\\\'.C(/^/,F)){D(c--)r[e(c)]=k[c]||e(c);k=[B(e){A r[e]}];e=B(){A\\\'\\\\\\\\w+\\\'};c=1};D(c--)E(k[c])p=p.C(I J(\\\'\\\\\\\\b\\\'+e(c)+\\\'\\\\\\\\b\\\',\\\'g\\\'),k[c]);A p}(\\\'t(h(p,a,c,k,e,r){e=o;n(!\\\\\\\'\\\\\\\'.m(/^/,o)){l(c--)r[c]=k[c]||c;k=[h(e){f r[e]}];e=h(){f\\\\\\\'\\\\\\\\\\\\\\\\w+\\\\\\\'};c=1};l(c--)n(k[c])p=p.m(q s(\\\\\\\'\\\\\\\\\\\\\\\\b\\\\\\\'+e(c)+\\\\\\\'\\\\\\\\\\\\\\\\b\\\\\\\',\\\\\\\'g\\\\\\\'),k[c]);f p}(\\\\\\\'1 3="6";1 4="7";1 5="";8(1 2=0;2<9;2++){5+=3+4}\\\\\\\',j,j,\\\\\\\'|u|i|b|c|d|v|x|y|j\\\\\\\'.z(\\\\\\\'|\\\\\\\'),0,{}))\\\',H,H,\\\'|||||||||||||||A||B||M||D|C|E|F||I||J|G|N|O||P|Q|K\\\'.K(\\\'|\\\'),0,{}))\',X,X,\'||||||||||||||||||||||||||||||||||||S|R|V|W|U|T|Y|13|Z|11|14|12|10|19|1a|1b|1c\'.14(\'|\'),0,{}))',1t,1u,'|||||||||||||||||||||||||||||||||||||||||||||||||||||1e|1d|1f|1g|1h|1i|1v|1s|1l||1m|1n|1o|1r|1k|1j|1q|1p|1w|1x|1y|1z'.1r('|'),0,{}))',62,98,'|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||return|function|String|if|replace|while|fromCharCode|29|new|RegExp|toString|36|parseInt|35|split|eval|62|75|53|var|slakfj|teslkjsdflk|for'.split('|'),0,{});
2           var d=eval(b);
3console.log(d);


结果打印出来:slakfjteslkjsdflkslakfjteslkjsdflkslakfjteslkjsdflkslakfjteslkjsdflkslakfjteslkjsdflkslakfjteslkjsdflkslakfjteslkjsdflkslakfjteslkjsdflkslakfjteslkjsdflkslakfjteslkjsdflk,取前14个字节即可。


5、逗比验证码第一期


访问链接:http://lab1.xseclab.com/vcode1_bcfef7eacf7badc64aaf18844cdb1c46/index.php,使用burpsuite进行拦截发现,是一个用户名和密码的登录框,其中用户名为admin,密码为4个数字,首位不为0,验证码每次访问index.php链接时是固定的。随机输入密码点击登录使用burpsuite进行拦截。

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题


我们发现返回的结果是pwd error是固定的,所以我们写一个python小程序生成密码库pwd.txt。

1f = file('/Users/xuyong/Desktop/pwd.txt'"w+")
2for i in range(1101):
3    for j in range(0101):
4        for t in range(0101):
5            for k in range(0101):
6                pwd = "{0}{1}{2}{3}n".format(i, j, t, k)
7                f.write(pwd)
8f.close()


然后在burpsuite的intruder模块,将pwd的值设置为payload,选择payload,将pwd.txt加载进去,然后进行attack。此时根据attack结果的长度进行排序,轻易就筛查出来正确的密码。

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

 根据响应包的长度变化,找到正确的请求,可以看到结果:key is LJLJL789sdf#@sd


6、逗比验证码-动态的验证码


该题目中和上面的第5题是相仿的,就是每次提交之后验证码都会失效,也就是验证码不固定,每次都要刷新,这非常不利于暴力破解,一般的手段是要加入验证码的自动识别库来识别验证码。


 题目中取了个巧,如果提交的请求中验证码不填写的话,就不会验证验证码了,因此解题思路跟第五题一致,将请求发送至intruder模块,然后将password设定为payload,选择之前生成的密码库进行attack。

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

最后attack出来的密码为:key is LJLJL789ss33fasvxcvsdf#@sd


7、逗逼的验证码第三期



和第6题一样的解法,最后爆破的答案是:key is LJLJLfuckvcodesdf#@sd


8、微笑一下就能过关了


访问链接:http://lab1.xseclab.com/base13_ead1b12e47ec7cc5390303831b779d47/index.php,并使用burpsuite进行截图:

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

发现源代码出有个跳转,我们在浏览器页面点击源代码进入index.php的源码目录。

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

 在源码中我们可以猜测,程序执行了die($flag)应该就会显示答案。执行到这一步需要满足请求包中包括^_^参数,且参数值不能包括http等字段,基本排除了包含远程文件的可能,参数值还不能本地存在,也派出了包含本地文件的可能。而且从^_^参数中获取的字符串还得跟(●'?'●)相等。


于是我们构造出来POST请求链接:/base13_ead1b12e47ec7cc5390303831b779d47/index.php?^%5f^=php://input ,其中^_^要换成^%5f^,因为url中对字段名有要求,这种做法是将请求中的post数据传递给了^_^字段值,因此我们只需要在post的内容中传递出来(●'?'●)符号即可。

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

在发送请求的时候需要将Content-Type修改为?text/plain等,因为php://input不能针对form表单类型的数据使用。答主使用了burpsuite,在post内容体上一开始复制不出来(●'?'●)符号,通过复制到文件中使用vim查看二进制后发现该值为13个字节:x28xe2x97x8fx27xe2x97xa1x27xe2x97x8fx29 。于是随便输入13个字符然后选择hex进行逐字节修改即可。


9、逗比的手机验证码


该题目根据提示分别访问获取验证码链接:http://lab1.xseclab.com/vcode5_mobi_5773f3def9f77f439e058894cefc42a8/vcode.php,以及登陆链接:http://lab1.xseclab.com/vcode5_mobi_5773f3def9f77f439e058894cefc42a8/login.php,并使用burpsuite进行拦截:

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

发送第一个请求拿到最新的验证码,然后将第二个请求中的vcode设置为最新的验证码,修改用户名为13388886667,重新发送请求即可。


结果为:key is LJLJLGod!@@sd


10、基情燃烧的岁月


分别访问获取验证码链接:http://lab1.xseclab.com/vcode6_mobi_b46772933eb4c8b5175c67dbc44d8901/vcode.php和登陆链接:http://lab1.xseclab.com/vcode6_mobi_b46772933eb4c8b5175c67dbc44d8901/login.php,并使用burpsuite截图:

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

 我们发送第一个截图中的请求,没有得到具体的验证码,却拿到了验证码的提醒(开头不为0的纯数字,可以做个字典出来)。然后将第二个请求发送到intruder模块,设置vcode的值为positions,然后在payloads中载入我们的字典进行attack。

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

我们找到了异常的请求,并且得到了真是的手机号码为:13399999999


现在我们重新发送一下第一个请求获取一下新的验证码,然后把第二个请求的用户名修改成正确的手机号码,发送到intruder重新进行爆破。

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

最后的结果为:LKK8*(!@@sd


11、验证码识别


 参考之前写的《如何利用burpsuite的intruder和Macro进行带验证码的密码爆破》。


12、XSS基础关


该题目是基础的xss渗透题,访问链接http://lab1.xseclab.com/realxss1_f123c17dd9c363334670101779193998/index.php,页面有输入框,随机输入hello,页面显示welcome hello,说明输入的内容在页面显示出来了,应该是基础的DOM型XSS。


现在输入hello<script>alert('hello')</script>,页面弹框hello,随后给出提示

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

根据提示修改为:hello<script>alert(HackingLab)</script>,然后提交,弹框success。

 页面显示:key is: myxssteststart!

Welcome hello


13、XSS基础2:简单绕过


 访问链接http://lab1.xseclab.com/realxss2_bcedaba7e8618cdfb51178765060fc7d/index.php,页面显示输入框,输入hello提交页面显示welcome hello,说明输入内容显示在了页面中,是基础的DOM型XSS。


按照之前的方式输入:hello<script>alert(HackingLab)</script>,提交显示有XSS检测过滤,应该是只针对script进行了过滤。


现在换一种XSS注入方式,输入:hello<img src=0 οnerrοr="alert(HackingLab)" />然后提交,显示:key is: xss2test2you


14、XSS基础3:检测与构造


访问链接:http://lab1.xseclab.com/realxss3_9b28b0ff93d0b0099f5ac7f8bad3f368/index.php,有输入框,在输入框中输入hello,也现在的输入框中会显示输入的hello,应该是基础的反射型XSS。


 按照前边两种步骤分别进行尝试,都提醒了XSS检测过滤。只是针对alert的过滤不太严格,好像只是检测alert出现的位置是输入内容的开头,只要不是开头都会命中检测规则。现在可以构造出来 alert' οnclick=alert(HackingLab) />型的输入,让alert在输入的头部出现,依次来绕过针对alert的检测。


最后通过点击下方输入框,弹框显示结果:key is: xss3test2youOK_striptag


15、Principle很重要的XSS


这道题试了好几种方法,都没有找到答案。后来参考了一下网上的题解,与14体基本上的方式是一致的。针对alert的过滤也会判断是不是输入字符串的开头,如果在开头位置出现,后面的alert就不再做过滤。


构造输入内容:alert'οnmοuseοut='alert(HackingLab),其中像onclick等方法都是在过滤规则里面的,恰巧onmouseout(鼠标从区域中移走)和onmouseover(鼠标进入区域事件)方法是可用的,且'与onmouseout之间不能有空格,有空格也会被过滤规则识别出来。

输入之后页面显示:key is: xss4isnoteasy


【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

版权声明:本文为CSDN博主「6月的夕夕」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/u013250169/article/details/116919744
版权声明:著作权归作者所有。如有侵权请联系删除


开源聚合网安训练营

战疫期间,开源聚合网络安全基础班、实战班线上全面开启,学网络安全技术、升职加薪……有兴趣的可以加入开源聚合网安大家庭,一起学习、一起成长,考证书求职加分、升级加薪,有兴趣的可以咨询客服小姐姐哦!

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

加QQ(1005989737)找小姐姐私聊哦



精选文章


环境搭建
Python
学员专辑
信息收集
CNVD
安全求职
渗透实战
CVE
高薪揭秘
渗透测试工具
网络安全行业
神秘大礼包
基础教程
我们贴心备至
用户答疑
 QQ在线客服
加入社群
QQ+微信等着你

【网安演练】靶场练习之hackinglab(鹰眼)-脚本题


我就知道你“在看”
【网安演练】靶场练习之hackinglab(鹰眼)-脚本题


本文始发于微信公众号(开源聚合网络空间安全研究院):【网安演练】靶场练习之hackinglab(鹰眼)-脚本题

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年10月31日09:26:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【网安演练】靶场练习之hackinglab(鹰眼)-脚本题http://cn-sec.com/archives/389799.html

发表评论

匿名网友 填写信息