常见安全测试项目总结 - 1

最近工作中接触到了一家安全公司出具的安全扫描报告,感觉其中所列的安全检查事项与常见漏洞比较齐全,故记录下以供之后学习。

SQL注入攻击

简介

SQL注入攻击主要是由于程序员在开发过程中没有对客户端所传输到服务器端的参数进行严格的安全检查,同时SQL语句的执行引用了该参数,并且SQL语句采用字符串拼接的方式执行时,攻击者将可能在参数中插入恶意的SQL查询语句,导致服务器执行了该恶意SQL语句。SQL注入漏洞主要影响是攻击者可利用该漏洞窃取数据库中的任意内容,在某些场景下,攻击者将有可能获得数据库服务器的完全控制权限。

典型示例:

如果在代码中直接拼接SQL,则可能产生此类漏洞。例如,我们接收一个用户输入的产品名称并从数据库中取出相关产品返回。如果我们使用拼接字符串:

String SQLQuery = "SELECT * FROM product WHERE product_name =" + userInput + ";"

这时如果用户输入为'test';DROP table product--,那么最终拼接成的字符串将成为:

SELECT * FROM product WHERE product_name = 'test'; DROP table product --;

或者,攻击者可以通过输入追加条件,如'test' OR 1=1拉取整张product表:

SELECT * FROM product WHERE product_name = 'test' OR 1=1;

CSRF跨站伪造请求

简介

CSRF(Cross-Site Request Forgery,跨站点伪造请求)是一种网络攻击方式,该攻击可以在用户毫不知情的情况下以用户自身的名义伪造请求发送给受攻击站点,从而在未授权的情况下执行在权限保护之下的操作。具体来讲,可以这样理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。

典型示例

银行网站 A,它以 GET 请求来完成银行转账的操作,如:

http://www.mybank.com/Transfer.php?toBankId=11&money=1000

危险网站 B,它里面有一段 HTML 的代码如下:

<img src=http://www.mybank.com/Transfer.php?toBankId=11&money=1000>

首先,你登录了银行网站 A ,然后访问危险网站 B ,噢,这时你会发现你的银行账户少了 1000 块…

XSS跨站脚本攻击

简介

跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。在不同场景下,XSS有相应不同的表现形式,主要分为反射型、存储型以及DOM型的跨站脚本攻击,所造成的影响主要是窃取用户登录凭证(Cookies)、挂马攻击、页面访问挟持等。

典型示例

在一些留言或者允许用户输入富文本并展示在页面上的地方,如果不做关键html标签的拦截,用户将可以通过输入<script>标签来向页面注入脚本。这些脚本可以拿到cookie、代用户发出请求、篡改页面内容,从而达成攻击效果。

SSRF 服务端请求伪造

简介

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成并由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)
SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。最终将可能导致,攻击者可通过外网服务器端利用该漏洞访问内网服务器端的资源。

实例

如某些网站提供网页转码、图片待下载、在线翻译等功能,如果存在SSRF漏洞则可以通过篡改请求地址获取服务器本地文件或请求内网资源,如

http://www.xingkonglangzi.com/ssrf.php?url=file///c./windows/win.ini 

任意文件上传

简介

任意文件上传漏洞主要是由于程序员在开发文件上传功能时,没有考虑对文件格式后缀的合法性进行校验或只考虑在应用前端(Web浏览器端)通过javascript进行后缀校验,攻击者可上传一个包含恶意代码的动态脚本(如jsp、asp、php、aspx文件后缀)到服务器上,攻击者访问该脚本时服务器将对包含恶意代码的动态脚本解析,最终执行相应的恶意代码。该漏洞最终将可能直接影响应用系统的服务器安全,攻击者可通过所上传的脚本完全控制服务器。

实例

当网站提供文件上传服务且未限制文件类型,而上传的目录又恰好有脚本执行权限,那么攻击者就可以通过编写恶意脚本并上传执行来完成攻击

<%@page import="java.io.File"%>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%
    String root = request.getServletContext().getRealPath("");
    out.write("系统部署绝对路径:"+root);
    File file = new File(root+"/index.jsp");
    file.delete();
%>

Reference

https://www.jianshu.com/p/64a413ada155

https://blog.csdn.net/tanzhen1991910/article/details/53260446

https://websec.readthedocs.io/zh/latest/vuln/ssrf.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值