nginx重定向到其他url方法_常见漏洞验证方法

b3e24fc1ef03caaf20901e16a9f924fd.png

扫描器扫完网站后,如何验证漏洞,一下是几个常见漏洞的验证方法:

1、跨站脚本

原理:指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。

(1)GET方式跨站脚本

具体方法:在输入的参数后逐条添加以下语句,以第一条为例,http://www.exmaple.com/page.xxx?name=<script>alert(523468)</script>输入后,只要其中一条弹出显示523468的告警框,就说明存在跨站漏洞,记录漏洞,停止测试。

由于某些网站会对<script>标签进行了过滤,如果没有弹出显示523468的告警框,则在返回的页面上单击鼠标右键,查看网页源代码。查看网页源码中是否包含完整的<script>alert(523468)</script>字符串,这样不管有没有弹出显示523468的告警框,都表明存在跨站脚本漏洞。

(2)POST方式跨站脚本

post方式同上,一般可以利用hackbar插件的Enable Post data插入验证内容。

注:特例有宽字符集跨站、Struts错误页面跨站脚本,验证方式相似。

2、框架注入、链接注入

原理:框架注入是一个所有基于GUI的浏览器攻击,是由于脚本没有对它们正确验证,攻击者有可能注入含有恶意内容的frame或iframe标记。

链接注入是修改站点内容的行为,其方式为将外部站点的URL嵌入其中,或将有易受攻击的站点中的脚本的URL嵌入其中。将URL嵌入易受攻击的站点中,攻击者便能够以它为平台来启动对其他站点的攻击,以及攻击这个易受攻击的站点本身。

具体方法:通过对网站中的get提交的url中的参数进行框架或者链接注入,注入到参数id

3、允许TRACE方法

原理:TRACE方法是HTTP协议定义的一种协议调试方法,该方法使得服务器原样返回任何客户端请求的内容。攻击者利用TRACE请求,结合其它浏览器端漏洞,有可能进行跨站脚本攻击,获取敏感信息,比如cookie中的认证信息,这些敏感信息将被用于其它类型的攻击。

具体方法:利用bp截包,将GET改为TRACE,单次发包,看是否会提醒保存文件,有的话,就存在。

4、Struts2远程命令

原理:作为网站开发的底层模板使用,是应用最广泛的Web应用框架之一。

一种漏洞类型是使用缩写的导航参数前缀时的远程代码执行漏洞,常见的有Struts2远程命令执行S2-045、Struts2远程命令执行S2-016、Struts2远程命令执行S2-019、Struts2远程命令执行S2-033、Struts2远程命令执行S2-037。

具体方法:把url粘贴到K8中,获取信息运行,如果是Windows系统就用ipconfig等命令,如果是Linux系统就用ifconfig看是否能执行,可以的话存在。

5、Struts2 URL跳转S2-017

原理:Struts2 URL跳转S2-017,是Struts2远程命令的第二类漏洞,是使用缩写的重定向参数前缀时的开放式重定向漏洞。

具体方法:通过使用“redirect:”或“redirectAction:”前缀参数是来支持短路导航状态更改的方法,然后是所需的重定向目标表达式。

如:原始网址为:http://127.0.0.1:8080/showcase.action;修改后:http://127.0.0.1:8080/showcase.action?redirect:http://www.baidu.com/,这样在浏览器运行会跳转到百度的链接。

6、SQL注入

原理:指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,获取数据库信息。

在实际验证过程中常见的有经常出现的SQL注入漏洞是SQL盲注、SQL错误信息注入、cookie SQL注入。

具体方法:利用sqlmap,SQL盲注、SQL错误信息注入可以直接sqlmap -u "url",cookie SQL注入新建txt文档把请求包的数据复制粘贴到里面,再利用sqlmap -r "xxx.txt",查寻是否存在注入点。

7、其他漏洞

(1)IIS文件解析代码执行:

原理:Microsoft IIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件,攻击者可以利用“~”字符猜解或遍历服务器中的文件名,或对IIS服务器中的.Net Framework进行拒绝服务攻击。

具体方法:链接后面加上.php格式,仍然能解析并且执行,则证明存在。

(2)Nginx文件解析代码执行

原理:当用户请求的url后缀为123.jpg/123.php时,location对请求进行选择的时候会使用URI环境变量进行选择,其中传递到后端Fastcgi的关键变量SCRIPT_FILENAME由Nginx生成的$fastcgi_script_name决定。

具体方法:链接后面加上.php格式,仍然能解析并且执行,则证明存在。

(3)Web.xml文件信息泄露

原理:在Java的Servlet 文档中,WEB-INF目录包含了所有web应用会用到但是不处于web路径中的资源,也就是说, WEB-INF目录下的内容是不属于公开页面的。

具体方法:在需要验证的域名后面加上WEB-INF/web.xml ,若出现 Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则,则证明存在。

(4)不安全的clientaccesspolicy.xml文件

原理:程序需要跨域访问,会出现错误,这时候需要把跨域文件放在web服务器下,允许跨域访问。

具体方法:在需要验证的域名后面加上clientaccesspolicy.xml

出现以下文件结构,则证明存在。

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from>
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>

等我熟悉了新的再补充,若有大佬请多多指教!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx是一个开源的高性能Web服务器,它可以用来处理静态内容和动态请求。在使用Nginx的过程中,有时我们需要将客户端请求的URL重定向到其他的URL,实现URL跳转。以下是Nginx重定向到其他URL方法: 使用rewrite指令进行URL重定向nginx.conf配置文件中,可以使用rewrite指令对URL进行重写或重定向,例如: location /oldurl { rewrite ^/oldurl(.*) https://newurl.com/newurl permanent; } 上述代码表示,当客户端访问/oldurl时,将它重定向到https://newurl.com/newurl。其中,permanent表示使用301重定向方式。 使用return指令进行URL重定向 除了rewrite指令,Nginx还提供了return指令,也可以用来实现URL重定向。例如: location /oldurl { return 301 https://newurl.com/newurl; } 上述代码表示,当客户端访问/oldurl时,将它重定向到https://newurl.com/newurl。其中,301表示使用永久重定向方式。 使用proxy_pass指令进行URL重定向 proxy_pass指令是Nginx中用来进行反向代理的指令,但是它也可以用来实现URL重定向。例如: location /oldurl { proxy_pass https://newurl.com/newurl; } 上述代码表示,当客户端访问/oldurl时,将它重定向到https://newurl.com/newurl。但是,这种方式的重定向需要后端服务器返回301或302状态码才能生效。 综上所述,Nginx提供了多种方式实现URL重定向,开发者可以根据具体需求自行选择。而且Nginx的性能和功能十分强大,深受广大开发者的青睐。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值