xss大小写绕过-xss绕过编码

第三方分享代码
hacker 3年前 (2022-07-05) 软件技术 143 2

目录介绍:

有方法能绕过IE11的xss防护机制吗?

较新版本直接绕过比较难,但如果网站存在CRLF漏洞,就可以让服务器返回一个包含X-XSS-Protection并值为0的http头,关闭浏览器的filter,而且CRLF漏洞自身也可以导致xss和session固定等漏洞

在input的标签里怎么绕过xss双引号的编码过滤

哥们,要是让你绕过去了,黑客也就绕过去了。不要想着从前台骗过过滤器,如果系统设置非常严格,所有从前台设置的输入信息都会被xss过滤器过滤,一般是把特殊字符删除或者转译(比如大于号小于号双引号斜杠等),避免用户通过非法手段存储注入代码,但是一般的web系统,都不会在显示的时候重新转码,所以,如果你可以直接访问数据库,则可以讲特殊字符的代码直接写到数据库里,页面就会直接显示了。

XSS 攻击时怎么绕过 htmlspecialchars 函数

绕不过。

所谓绕过就是挑程序员忘记正确转码的地方下手。

注意并非htmlspecialchars就万事大吉,不同的地方需要不同的转码。所以所谓绕过htmlspecialchars也可能指那个漏洞点用htmlspecialchars转码压根不正确。

怎么绕过简单的sql防

《Web安全之SQL注入攻击技巧与防范》:

二、 几种绕过姿势

下面列举几个防御与绕过的例子:

例子1:addslashes

防御:

这里用了addslashes转义。

绕过:

将字符串转为16进制编码数据或使用char函数(十进制)进行转化(因为数据库会自动把16进制转化)

用注释符去掉输入密码部分如“-- /* #”

payload:

-- hack 

(因为有的SQL要求--后要有空格,所以此处加上了hack)

(escape不转义/*)

 

(这里的%23即为#,注释掉后面的密码部分。注意IE浏览器会将#转换为空)

 

(admin# --0x61646d696e23)

(97,100, 109, 105, 110, 35) 

(admin# --CHAR(97, 100, 109, 105, 110, 35))

关于编码原理:

因为一般前端JavaScript都会escape()、encodeURL或encodeURIComponent编码再传输给服务器,主要为encodeURL,如下,所以可以利用这点。

JavaScript代码如:

拦截请求:

1)escape( )

对ASCII字母、数字、标点符号"@* _ + - . /"不进行编码。在\u0000到\u00ff之间的符号被转成%xx的形式,其余符号被转成%uxxxx的形式。(注意escape()不对"+"编码,而平时表单中的空格会变成+)

2) encodeURL

对" ; / ? : @ = + $ , # ' "不进行编码。编码后,它输出符号的utf-8形式,并且在每个字节前加上%。

3) encodeURIComponent

用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。

常用编码:

@ * _ + - ./ ;  \ ? : @  = + $ , # ' 空格 

转码工具可用:

参考:

《URL编码》:

例子2:匹配过滤

防御:

绕过:

关键词and,or常被用做简单测试网站是否容易进行注入攻击。这里给出简单的绕过使用,||分别替换and,or。

过滤注入: 1 or 1 = 1 1 and 1 = 1

绕过注入: 1 || 1 = 1 1 1 = 1

关于preg_match过滤可以看参考文章,文章里讲得很详细了。

参考:

《高级SQL注入:混淆和绕过》:

例子3:strstr

防御:

strstr ()查找字符串的首次出现,该函数区分大小写。如果想要不区分大小写,使用stristr()。(注意后面这个函数多了个i)

绕过:

strstr()函数是对大小写敏感的,所以我们可以通过大小写变种来绕过

payload:

 select null,null,null 

例子4:空格过滤

防御:

绕过:

1)使用内联注释。

2)使用换行符代替空格。注意服务器若为Windows则换行符为%0A%0D,Linux则为%0A。

**/and/**/11=1  

例子5:空字节

通常的输入过滤器都是在应用程序之外的代码实现的。比如入侵检测系统(IDS),这些系统一般是由原生编程语言开发而成,比如C++,为什么空字节能起作用呢,就是因为在原生变成语言中,根据字符串起始位置到第一个出现空字节的位置来确定字符串长度。所以说空字节就有效的终止了字符串。

绕过:

只需要在过滤器阻止的字符串前面提供一个采用URL编码的空字节即可。

payload:

例子6:构造故意过滤

防御:

绕过:

文件的63行开始可以看到,此处将传入的%27和%2527都进行删除处理,也就是还没传入数据库前就已经被该死的程序吃了,但是在67行看到他还吃了*,这样我们就有办法了,我们构造%*27,这样程序吃掉星号*后,%27就会被传入。

payload:

*27%*20and%*20%*271%*27%3D%*271 

(id=1' and '1'='1--id%3D1%*27%*20and%*20%*271%*27%3D%*271)

参考:

《phpcms_v9.6.0_sql注入与exp》:

如何绕过 浏览器xss filter

反射xss利用方法,绕过IE XSS Filter

假设 1.php页面代码如下:

echo $_GET['str'];

使用IE浏览器访问该页面

1.php?str=xss code

由于xss filter渲染 导致XSS不成功

接下来我们要这么绕过呢?

如果该站点 可以发帖、友情链接等等 只要能发链接地址其实不只发链接 嘿嘿。

由于IE XSS FILTER 只是检测 referer 是否来自本源,如果来自本源 则 Ie XSS FILTER则不生效。你现在明白了吧

在javascript: date: 等协议无效的情况下:

a href=";xss code"求友情链接/a

IE用户点击即可中招(其他部分浏览器也中招)

相关推荐

网友评论

  • (*)

最新评论

  • 访客 2022-07-05 17:02:44 回复

    器的filter,而且CRLF漏洞自身也可以导致xss和session固定等漏洞在input的标签里怎么绕过xss双引号的编码过滤哥们,要是让你绕过去了,黑客也就绕过去了。不要想着从前台骗过过滤器,如果系统设置

    1
  • 访客 2022-07-05 19:29:44 回复

    0x61646d696e23)(97,100, 109, 105, 110, 35) (admin# --CHAR(97, 100, 109, 105, 110, 35))关于编码原理:因为一般前端JavaScript都会escape()、encodeU

    2