码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Web攻防03_MySQL注入_数据请求


    文章目录

    • PHP-MYSQL-数据请求类型
        • 1、数字型(无符号干扰)
        • 2、字符型(有符号干扰)
        • 3、搜索型(有多符号干扰)
        • 4、框架型(有各种符号干扰)
    • PHP-MYSQL-数据请求方法
        • 数据请求方法
        • GET:
        • POST:
        • Cookie:
        • SERVER
        • 功能点举例:
    • PHP-MYSQL-数据请求格式
        • 1、数据采用统一格式传输,后端进行格式解析带入数据库(json)
        • 2、数据采用加密编码传输,后端进行解密解码带入数据库(base64)

    请添加图片描述

    PHP-MYSQL-数据请求类型

    SQL语句由于在黑盒中是无法预知写法的,SQL注入能发成功是需要拼接原SQL语句,大部分黑盒能做的就是分析后各种尝试去判断,所以有可能有注入但可能出现无法注入成功的情况。究其原因大部分都是原SQL语句的未知性导致的拼接失败!

    由于开发者对于数据类型和SQL语句写法(框架写法)导致SQL注入拼接失败

    1、数字型(无符号干扰)

    select * from news where id=$id;

    若用户输入字符,sql语句则会报错

    2、字符型(有符号干扰)

    select * from news where id=‘$id’;

    若条件为int,也可设为字符型,带上单引号,这样即使用户输入为字符也不会报错,只是查不出来。

    3、搜索型(有多符号干扰)

    select * from news where id like ‘%$id%’

    4、框架型(有各种符号干扰)

    select * from news where id=(‘$id’);

    select * from news where (id=‘$id’);

    PHP-MYSQL-数据请求方法

    在很多漏洞中都有应用到。

    请求方法不同,就会有不同的注入点

    如果代码审计时发现一个注入点,则需要找到它的请求方法,如Get、Post,进行相应的测试

    通过不同的请求方法也有可能绕过一些WAF

    数据请求方法

    GET POST SERVER FILES HTTP头等

    GET:

    URL后的参数

    POST:

    一般看不到的传参,用户登录、文件上传等功能会用到,需要用burpsuite抓包调试较方便。

    Cookie:

    比较少

    SERVER

    可以获取User-Agent、Cookie、Rerferer、Host、X-FORWARDED-FOR(用于XFF注入)等

    • User-Agent:

    使得服务器能够识别客户使用的操作系统,浏览器版本等.(很多数据量大的网站中会记录客户使用的操作系统或浏览器版本等存入数据库中)

    • Cookie:

    网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据

    • X-Forwarded-For:

    简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库or某文件[通过修改XXF头可以实现伪造IP]).

    网站有接收&验证IP的功能,并且使用PHP的HTTP_X_FORWARDED_FOR就会有安全隐患,它可以通过修改数据包进行伪造。

    该注入是由于数据库存储IP导致的,如果IP配置到代码中,就不会产生过注入了。

    但是配置到代码中也会有绕过隐患。

    • Rerferer:

    浏览器向 WEB 服务器表明自己是从哪个页面链接过来的(访问来源)

    • Host:

    客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号

    有些网站会记录访问者的IP信息,作为日志等功能,有该功能,就有可能有该漏洞

    功能点举例:

    1、用户登录时

    一般多为POST请求

    2、登录判断IP时

    PHP特性中的**$_SERVER[‘HTTP_X_FORWARDED_FOR’];**接受IP的绕过(绕过)

    实现:代码配置固定IP去判断-策略绕过

    实现:数据库白名单IP去判断-select注入

    实现:防注入记录IP去保存数据库-insert注入

    3、文件上传将文件名写入数据库-insert注入

    文件上传时,会将文件名写入数据库,此时将文件名作为注入的语句。

    PHP-MYSQL-数据请求格式

    1、数据采用统一格式传输,后端进行格式解析带入数据库(json)

    2、数据采用加密编码传输,后端进行解密解码带入数据库(base64)

    需要在注入时将注入语句编码,再进行注入。

    工具也不知道它有编码/加密,需要手工测出来后告诉工具如何加密的,再由工具测

  • 相关阅读:
    算法与数据结构 --- 线性表 --- 链式表示与实现(下)
    运维10个知识和经验
    Spring项目整合 XXL-JOB分布式任务调度平台
    大一学生网页课程作业 南京介绍网页设计 学生家乡网页设计作品静态 HTML网页模板源码 html我的家乡网页作业
    解决MySQL需要根据特定顺序排序
    5(6)-羧基四甲基罗丹明,CAS号:150347-56-1
    代码规范配置未生效,解决思路(涵盖 .eslintrc + .prettierrc + settings.json + .editorconfig)
    猿创征文|详解从0开始的嵌入式学习路线,学什么、怎么学?
    java-数组
    Kotlin 如何确定协程是否启动
  • 原文地址:https://blog.csdn.net/qq_55977327/article/details/133936463
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号