| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> 攻防世界-upload -> 正文阅读 |
|
[PHP知识库]攻防世界-upload |
进入场景映入眼帘 ?需要注册账号 注册好之后,登录跳转页面 ?突破点应该就在这里了 我们先上传一个php文件 显示不正确的文件扩展名,被拦了 用burp抓包改信息 成功上传 但是没有上传路径 只能上传不能利用 思考(题目给的是upload,给的引导思路 就是上传文件拿flag) 我试着上传jpg,png格式的图片文件 ?有文件名回显,这说明文件已经被传到了数据库中,游览器又从数据库中读取了上传的文件,那么这个过程久有可能触发sql注入,那么将文件名中加入sql语句,尝试burp抓包修改 ?可以看出select被过滤了,之后的尝试 from也被过滤了,那么尝试双写绕过 双写绕过成功 由此可以得出结论肯能存在sql注入. 尝试去验证sql注入的存在 ? ?sql语句是执行了,但无法输出执行结果.(可能数据被过滤掉了) 那么尝试将查询结果改为16进制输出 ?输出7765626(7765625 + 1) 用16进制解码字符串为web. 这里有个坑,? 插入数据库文件名中如果包括SQL语句,在返回信息时,服务器将对字母进行截断(某些特殊字符也会截断或过滤) 尝试用10进制表示 conv函数(src,from_base,to_base) src是要转换的数据, from_base是原进制, to_base是目标进制. 使用CONV是因为题目过滤了回显有字母的情况,如果出现了字母则后面的内容就不显示,所以需要将16进制的内容转成10进制 构造payload '+(selselectect conv(hex(database()),16,10))+'.jpg 用了科学计数法(估计是数字太长了,这里就需要截断获取数据了 ?构造payload:'+(selselectect?conv(substr(hex(database()),1,12),16,10))+ '.jpg (经过测试发现长度最大为12,超过12 就会返回科学计数法表示) 通过解码得到web_up ?取下一段'+(selselectect?conv(substr(hex(database()),13,12),16,10))+ '.jpg ?解码得load拼起来得web_load 有看库名,就开始爆表名,再之后是字段名 不再一一赘述 方法类似 最后得到flag !!_@m_Th.e_F!lag |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年12日历 | -2024/12/29 4:26:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |