| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> “你能让别人的密码显示在我的页面上吗?““当然可以。“ -> 正文阅读 |
|
[网络协议]“你能让别人的密码显示在我的页面上吗?““当然可以。“ |
前段时间,有个朋友问我:“你是做网络安全,当黑客的,你能让别人的密码显示在我的页面上吗?” 我说:“当然可以,用报错注入啊,不只是密码,只要数据库里有的,都能显示出来。” 朋友又问:“报错注入是什么,怎么用啊?” “这属于付费项目”,我翘起二郎腿,瞥了她一眼。 “我给你带一星期的早饭?” “十分钟给你整明白!!!” 报错注入一、原理报错注入利用函数的报错信息,将查询结果携带出来,并在页面显示(前提是页面显示数据库的报错信息)。 二、报错函数报错注入所利用的函数被称为报错函数,最常用的报错函数是:updatexml() 1. updatexml()语法格式:
技能点:
2. 报错原理当第二个参数中包含「特殊符号」时,会导致数据库报错,并将第二个参数的内容展示在报错信息中: 3. 拼接查询语句将「查询结果」拼接在参数中,可以在报错信息中一同展示查询结果。 4. 使用格式使用 updatexml() 函数获取数据时,只需要修改下方格式中的查询语句:
5. 多行查询结果报错函数允许返回的查询结果需要满足两个条件:
这里可以粗暴的理解为:报错函数只能返回一个字符串。 因此,使用报错函数返回「多行查询结果」时,需要将查询结果拼接成一个字符串。 比如,我们获取数据库的所有用户(数据库有多个用户,查询结果肯定是多行数据): 6. 报错长度限制实际上,我的数据库中有4个用户(如下图):
5.1 limit 分页比如,我们分别查询第二条数据、第三条数据(从0开始): 5.2 substr() 截取字符串比如,我们分别展示查询结果的第 三、注入步骤适用情况:页面有数据库的报错信息 报错信息必须是动态的、来自数据库的报错信息;网站写死的、自定义的报错提示不算。 1. 判断是否报错参数中添加单/双引号,页面报错才可进行下一步。
2. 判断报错条件参数中添加报错函数,检查报错信息是否正常回显
3. 脱库获取所有数据库
获取所有表
获取所有字段
四、实战案例我们拿测试网站(SQLi 第一关)练习一下。 先给个单引号,页面显示了数据库的报错信息,确定报错注入可用:
感谢你的点赞、收藏、评论,我是三日,祝你幸福! |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/26 7:20:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |