零,绪论

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. 【本周面试题】第1周 - 获取URL中的查询字符串参数、get和post的区别

    [此系列优先解决自己经历的面试题] 2018.11.16 面试题一:你如何获取浏览器URL中查询字符串中的参数? 题目代码: 测试地址为 https://www.sogou.com/tx?query= ...

  2. django中url 和 path 的区别

    django中 url 和 path 都是配置路径,有什么不同? django.urls path django.conf.urls  url path 与 url 是两个不同的模块,效果都是响应返回 ...

  3. 记录一次bug解决过程:velocity中获取url中的参数

    一.总结 在Webx的Velocity中获取url中参数:$rundata.getRequest().getParameter('userId') 在Webx项目中,防止CSRF攻击(Cross-si ...

  4. 你知道url中的特殊符号含义么

    1.# #代表网页中的一个位置.其右面的字符,就是该位置的标识符.比如,http://www.example.com/index.html#print就代表网页index.html的print位置.浏 ...

  5. js的url中传递中文参数乱码,如何获取url中参数问题

    一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: <script type=”text/javascript ...

  6. JS中的的Url传递中文参数乱码,如何获取Url中参数问题

    一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码:<script type=”text/javascript” ...

  7. 【转】URL和URI的区别

    [转]URL和URI的区别 译者:华科小涛:http://www.cnblogs.com/hust-ghtao/: 初学http协议,就被这两个相似的术语搞蒙了,查了很多资料,总算搞清楚了.(找资料还 ...

  8. Js的Url中传递中文参数乱码的解决

    一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: 2. 接收参数页面:test02.html 二:如何获取Url& ...

  9. 一招明白URL和URI的区别

    URL和URI的区别(示例): URL[统一资源定位器]: http://localhost:8080/api/account/queryAccountInfo URI[统一资源定位符]: /api/ ...

随机推荐

  1. ItelliJ基于Gradle创建及发布Web项目(一)

    背景:安装IntelliJ,去官网下载. 创建WEB项目 1. File->New Project,在弹出的选项框中勾选Web,如下图. IntelliJ默认使用Gradle,感谢Gradle. ...

  2. Centos7 通过yum源安装nginx

    通过rpm 添加yum源 rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ng ...

  3. Ubuntu 14.04主机上部署k8s集群

    部署结构 3台虚拟机,其中1台作为master,2台作为minion,都安装了最新版本的docker engine(目前是1.11.2) k8s版本是1.3.0 主要问题 部署步骤基本按照官方文档:h ...

  4. Android四大组件全然解析(一)---Activity

    本文參考\android\android\frameworks\base\core\java\android\app\Activity.java文件里的类凝视.以及android/frameworks ...

  5. windows 添加打印机

    控制面板---->硬件和声音---->设备和打印机--->点击添加打印机 最后安驱动(选择通用) OK!

  6. print()函数的end 参数

    print()函数含end参数时:结束的时候已什么结尾,后面的参数可以是任何形式 [print() 默认以'\n'  结尾] 输出结果:  print()函数不含end参数时: 输出结果:

  7. locatin

    //location对象 //初始url:http://www.wrox.com/WileyCDA: //将URL修改为:http://www.wrox.com/WileyCDA/#section1 ...

  8. Python高级编程之生成器(Generator)与coroutine(三):coroutine与pipeline(管道)和Dataflow(数据流_

    原创作品,转载请注明出处:点我 在前两篇文章中,我们介绍了什么是Generator和coroutine,在这一篇文章中,我们会介绍coroutine在模拟pipeline(管道 )和控制Dataflo ...

  9. js 去掉数组中重复的对象

    function deteleObject(obj) { // console.log(obj) var uniques = []; var stringify = {}; ; i < obj. ...

  10. httpoxy 漏洞预警及修复方案

    影响范围 PHP.Go.Python等开启CGI(Client)模式的脚本语言 Language 环境依赖 HTTP Client PHP php-fpmmod_php Guzzle 4+Artax ...