常见的WEB安全漏洞

安全漏洞分类

作用于服务端的漏洞,作用于客户端的漏洞

常见的服务端漏洞

不好的设计

基于机制不可知来隐藏敏感信息是不安全的

<?php
// 用可预测的COOKIE值判断管理员
if ('admin' == $_COOKIE['role']) {
    echo 'Welcom, admin';
    echo 'You can do whatever you want';
}

// 基于MD5生成TOKEN
$name = $_POST['name'];
$passwd = $_POST['passwd'];

// hello hacker, we use double md5, crack it if you can
// http://www.cmd5.com/
$passwd = md5(md5($passwd));

register($name, $passwd);

非法文件上传

形成漏洞的前提:

  • 上传的文件能够被Web容器解释执行。所以文件上传后所在的目录要是Web容器所覆盖到的路径。
  • 用户能够从Web上访问这个文件。如果文件上传了,但用户无法通过Web访问,或者无法得到Web容器解释这个脚本,那么也不能称之为漏洞。

错误的做法:

  • 对于上传的文件不做限制
  • 允许上传的文件改名,对改的名字不做限制

正确的做法:

  • 白名单限制上传文件的类型
  • 抛弃原始文件名,按规则生成新的文件名
  • 只提供上传功能:不要允许改名
  • 上传的文件单独存放,取消执行权限

sql注入

就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

// http://10.94.43.36:8112/sqlinject.php?username=&password=%27%20or%20%27%27=%27

<?php
$username = $_GET['username'];
$password = $_GET['password'];

$conn = mysql_connect('127.0.0.1', 'root', '') or die("connect failed". mysql_error());
mysql_select_db('user', $conn);

$sql = "select name,password from student where 
    name='$username' and password='$password'";

$ret = mysql_query($sql, $conn);

$result = [];
while ($row = mysql_fetch_array($ret)) {
    $result[] = $row;
}

$data = [
   'sql' => $sql,
   'data' => $result,
];

exit(json_encode($data));

命令执行

不可信的用户输入跨越边界进入SHELL

// http://10.94.43.36:8112/rce.php?cmd=whoami
// system函数
$cmd = $_GET['system'];

if (!empty($cmd)) {
    system($cmd);
}

// http://10.94.43.36:8112/rce.php?eval=echo%20%27helloword%27;
// eval函数: eval() 函数把字符串按照 PHP 代码来计算。

$cmd = $_GET['eval'];

if (!empty($cmd)) {
    eval($cmd);
}

内网代理

不可信的用户输入跨越边界进入网络访问或文件系统

信息泄露

报错信息(sql, stacktrace)
物理路径泄露
用户信息泄露

本身不会带来很严重问题,但是可能会帮助黑客更快的攻克你的系统

常见的客户端漏洞

xss

什么是XSS?跨站脚本攻击(Cross Site Scripting)
反射型
持久型
DOM型

// http://xxxx:8112/xsstest.php?username=%3Cscript%3Ealert(document.cookie)%3C/script%3E  

header('X-XSS-Protection:0');
header('Content-Security-Policy:0');

$username = $_GET['username'];

echo 'Welcom ' . $username;

csrf

CSRF(Cross-site request forgery跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

// http://xxxx:8112/csrftest.php

header('X-XSS-Protection:0');
header('Content-Security-Policy:0');

$username = $_GET['username'];

$test = '<img src="https://passport.baidu.com/passport/?logout"/>';

echo $test;

Json Hijack

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《Web安全漏洞加固手册v2.0》是一本针对web安全漏洞的加固手册。这本手册涵盖了许多常见web安全漏洞,并提供了详细的加固方法和技巧。 这本手册的主要目的是帮助开发人员和网络管理员加强他们的网站和应用程序的安全性。它提供了一系列的安全措施和建议,以减少常见的漏洞和攻击面。 手册中首先介绍了一些web安全的基础知识,如跨站脚本攻击(XSS)、SQL注入、跨站请求伪造(CSRF)等。然后详细介绍了这些漏洞的工作原理和可能的攻击场景。接下来,手册提供了一系列的加固措施和建议,以避免这些漏洞的利用。 手册中的加固方法包括输入验证、输出编码、会话管理、访问控制、密码安全等方面。它提供了具体的代码示例和配置建议,以帮助开发人员和网络管理员快速理解和实施这些安全措施。 除了加固方法,手册还提供了一些常见的安全测试工具和技术,以帮助用户评估他们的网站和应用程序的安全性。这些工具和技术包括漏洞扫描器、渗透测试、安全审计等。 总的来说,《Web安全漏洞加固手册v2.0》是一本非常有用的指南,可以帮助开发人员和网络管理员提高其网站和应用程序的安全性。它提供了详细的加固方法和技巧,以及一些常见的安全测试工具和技术。使用这本手册可以增强对web安全漏洞的防范和应对能力。 ### 回答2: Web安全漏洞加固手册(v2.0)是一份指导开发人员和网站管理员加强网站安全的手册。该手册包含了识别和解决常见Web安全漏洞的方法和建议。 首先,手册详细介绍了各种常见Web安全漏洞,如跨站脚本攻击(XSS)、跨站请求伪造(CSRF)、SQL注入、文件上传漏洞等。手册通过详细解释漏洞的原理和攻击方式,帮助开发人员更好地了解这些漏洞的风险和潜在威胁。 其次,手册提供了加固漏洞的方法和建议。对于每种漏洞,手册列出了相应的修复措施和最佳实践,包括输入验证、输出转义、使用安全密码存储、限制访问权限等。这些方法和建议可以帮助开发人员及时修复漏洞、提高网站的安全性。 此外,手册还介绍了与Web安全相关的其他主题,如安全的会话管理、HTTP安全策略(CSP)配置、安全的加密传输(SSL/TLS)、安全的第三方API使用等。这些内容进一步提升了开发人员对Web安全的认识,并提供了相应的解决方案。 需要注意的是,Web安全是一个动态的领域,安全威胁和攻击技术不断演变。因此,手册还提供了定期更新和加固的建议,以保持技术的时效性和有效性。 总之,Web安全漏洞加固手册v2.0是一个全面指导开发人员加强Web安全的资源。通过遵循手册中的方法和建议,开发人员可以最大程度地减少Web安全漏洞的风险,并提高网站的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值