URL中?和#的区别(关于SSRF)以及mysql的secure-file-priv
零,绪论
20180125日,忙! 瞎比比总结一下,来满足这是个日记的样子。
1、今天谈的并不是什么技术【当然也不是没有技术(都很基础)】而是瞎几把扯。
一、关于一种SSRF的检测绕过:
1、背景:
有这样一种情况在集中登录认证的web页面一般url后面会跟一个next=https://aaa.bbcc.com/index/xxx/index.html这个位置很容易发生SSRF。但仔细观察测试,发现这个地方对URL做了检测,只允许URL以图片类文件扩展名作为结尾。例如.jpg,.png等等,为了绕过这个检测,想到了使用#和?,但是在这里就发现了区别了。
2、?与#的区别:
(1)?号是URL的一部分,一般用在GET请求之中,作为区分主干和参数的符号。例如一个请求是:https://www.asdf.com/getinfo.php?name=test。在请求报文中应该是下面这样的:
GET /getinfo.php?name=test HTTP/1.1
Host: www.asdf.com
...
当?后面的部分在后台的处理函数中不做处理的时候也对整个访问没有影响。
(2)#号其实不是URL的一部分,或者准确的说是不传到后台的一部分,所以#以及其后面的部分不会出现在请求报文中。一个https://www.asdf.com/getinfo.php#print的请求报文应该如下:
GET /getinfo.php HTTP/1.1
Host: www.asdf.com
...
所以#号具有以下特点:
@1 #号不触发网页的重载;
@2 #号不影响请求报文的路径;
但是#号也对浏览有影响:
@1 #会改变历史记录,对于ajax类请求很有帮助,可以记录请求时候的一些状态值。
@2 window.location.hash会读取#号后面的值,还有就是#后面值得改变将会触发HTML5中的onhashchange事件。
综上所述,我想绕过SSRF的检查,就需要让URL以.jpg等图片格式的扩展名后缀结尾(在请求路径中),而且不能让其起效。所以就可以使用?来把最后面的部分加载在参数里,从而满足后台的检查,又能触发SSRF。
二、关于MySQL的secure-file-priv检查
1、背景:
在拿到mysql的最高权限的时候,想利用sql语句写个一句话进去,然而我发现我遇到了一个错误,SQL语句执行不符合secure-file-priv的设定。
2、什么是secure-file-priv
secure-file-priv是MySQL的一个新特性,这个配置点后面决定了MySQL数据导入导出的合法路径。否则既无法写文件、也无法读文件,例如into outfile时候回出错,load_file时候会返回null等。而这个配置的值在my.ini或者mysqld.cnf文件中默认是NULL哦,这样就导致了彻底无法输入写出和读入。如何查询对方的合法路径呢,可是使用:
show variables like '%secure%';
mysql> show variables like '%secure%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| require_secure_transport | OFF |
| secure_auth | ON |
| secure_file_priv | NULL |
+--------------------------+-------+
rows in set (0.00 sec)
类似于这种就没得玩了,而且这个只能通过配置文件修改,无法直接通过mysql-cli去修改,因此只能想别的办法了。
URL中?和#的区别(关于SSRF)以及mysql的secure-file-priv的更多相关文章
- 【本周面试题】第1周 - 获取URL中的查询字符串参数、get和post的区别
[此系列优先解决自己经历的面试题] 2018.11.16 面试题一:你如何获取浏览器URL中查询字符串中的参数? 题目代码: 测试地址为 https://www.sogou.com/tx?query= ...
- django中url 和 path 的区别
django中 url 和 path 都是配置路径,有什么不同? django.urls path django.conf.urls url path 与 url 是两个不同的模块,效果都是响应返回 ...
- 记录一次bug解决过程:velocity中获取url中的参数
一.总结 在Webx的Velocity中获取url中参数:$rundata.getRequest().getParameter('userId') 在Webx项目中,防止CSRF攻击(Cross-si ...
- 你知道url中的特殊符号含义么
1.# #代表网页中的一个位置.其右面的字符,就是该位置的标识符.比如,http://www.example.com/index.html#print就代表网页index.html的print位置.浏 ...
- js的url中传递中文参数乱码,如何获取url中参数问题
一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: <script type=”text/javascript ...
- JS中的的Url传递中文参数乱码,如何获取Url中参数问题
一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码:<script type=”text/javascript” ...
- 【转】URL和URI的区别
[转]URL和URI的区别 译者:华科小涛:http://www.cnblogs.com/hust-ghtao/: 初学http协议,就被这两个相似的术语搞蒙了,查了很多资料,总算搞清楚了.(找资料还 ...
- Js的Url中传递中文参数乱码的解决
一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: 2. 接收参数页面:test02.html 二:如何获取Url& ...
- 一招明白URL和URI的区别
URL和URI的区别(示例): URL[统一资源定位器]: http://localhost:8080/api/account/queryAccountInfo URI[统一资源定位符]: /api/ ...
随机推荐
- Python3.2官方文档翻译--输出格式化
第八章 标准库二 第二部分涵盖了很多更能满足专业开发者需求的高级模块.这些模块在小脚本中非常少出现. 8.1 输出格式化 Reprlib模块为大型的或深度嵌套的容器缩写显示提供了repr()函数的一个 ...
- [Jobdu] 题目1408:吃豆机器人
题目描述: 淘宝公司内部有许多新鲜的小玩具,例如淘宝智能机器人.小时候,大家都玩过那个吃豆子的游戏吧,这机器人就是按照这个游戏设计的,它会朝着豆子的方向行走.不过机器人还存在一个bug,他只会朝南和朝 ...
- 让低版本IE也能正常运行HTML5+CSS3网站的3种解决方案
现在我们可以选择浏览器非常多,所以浏览器的环境也是种类繁多,同一个浏览器也是包含各种不同的版本,不同的版本之间的渲染方法也存在差异,,它们支持的 HTML5.CSS3 特性恐怕也不尽相同.这种情况于是 ...
- Struts2 上传下载
一. 1.文件上传是web应用经常用到的一个知识.原理是,通过为表单元素设置enctype=”multipart/form-data”属性,让表单提交的数 据以二进制编码的方式提交,在接收此请求的Se ...
- python3+spark2.1+kafka0.8+sparkStreaming
python代码: import time from pyspark import SparkContext from pyspark.streaming import StreamingContex ...
- SAP ECC6安装系列四:安装过程详解
原作者博客 http://www.cnblogs.com/Michael_z/ ======================================== 续接上篇,我们终于按下了 “Next” ...
- 基于HTML5 Canvas 实现的 Loading 效果
Sonic.js 是一个很小的 JavaScript 类,用于创建基于 HTML5 画布的加载图像.更强大的是 Sonic.js 还提供了基于现成的例子的创建工具,可以帮助你实现更多自定义的(Load ...
- OpenGL ES 简单教程
什么是OpenGL ES? OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库. 为桌面版本号OpenGL 的一个子集. ...
- JQuery.getJSON 没反应
Jquery是一个优秀的Javascrīpt框架,轻量级的js库,它兼容CSS3.jQuery使用户能更方便地处理HTML documents.events.实现动画效果,并且方便地为网站提供AJAX ...
- mysql 分区 限制
MySQL分区的限制 • 只能对数据表的整型列进行分区源码天空,或者数据列可以通过分区函数转化成整型列 • 最大分区数目不能超过1024 • 如果含有唯一索引或者主键,则分区列必须包含在所 ...