漏洞利用与安全加固

本文探讨了Web安全的历史演变,从Web1.0的静态页面到Web2.0的动态页面,强调了随着交互性的增强,安全风险也随之增加。重点介绍了SQL注入和XSS跨站脚本两种常见攻击方式,包括它们的工作原理、防范措施及实验示例。同时,提到了文件上传漏洞和Webshell的概念,强调了安全加固的重要性。
摘要由CSDN通过智能技术生成

漏洞利用与安全加固

历史

Web1.0时代(静态页面):html或者htm

Web2.0时代(动态页面):asp、aspx、php、jsp等

特点:1.依赖数据库

            2.灵活性好,维护简便

            3.交互性好,功能强大

           4.存在安全风险,例如注入、跨站、上传等攻击

攻击方式

  • SQL注入攻击
    定义:程序中对用户输入检查不严格,用户可利用应用程序根据提交的数据动态生成                      SQL命令的特性,在URL、表单域,或者其他的输入域中输入自己的SQL命令,改变SQL命令的操作,将被修改的SQL命令注入到后端数据库引擎执行。

原因:使用字符串拼接的方式构造SQL语句

           未对用户可控参数进行足够的过滤

方式:

A.内联式

B.终止式

实验:SQL注入防范

要求:a. 用户登录界面用户名处输入万能密码admin' or 1=1 --', 密码处输入任意字符。

           b. 修改登录模块的SQL查询相关语句。

String sql="select * from tb_user where user_name='"+params[0]+"' and user_pswd='"+params[1]+"'";
List list=getList(sql,null);

          c. 再次运行。

原因:使用PreparedStatement方法完成SQL语句的执行,该方法要求在执行SQL语句之前,必须告诉JDBC哪些值作为输入参数.

结果:解决了普通Statement方法的注入问题,极大的提高了SQL语句执行的安全性。

  • XSS跨站脚本

反射型

存储型

实验:xss跨站防范

content=content.replace("<","&lt;");
content=content.replace(">","&gt;");

要求:用户提交留言和评论信息时将<和>分别替换为&gt;和&lt;

原因:在HTML中,某些字符是预留的。在解析他们时会误认为它们是标签。如果希望正确地显示预留字符,我们必须在HTML源代码中使用字符实体(character entities)。

上传漏洞

上传功能是用户与服务器进行文件交互的重要手段。

文件上传攻击是指攻击者利用Web应用对上传文件过滤不严的漏洞。

Webshell

攻击条件

       目标网站具有上传功能且木马能够成功上传。

      上传的目标文件能够被Web服务器解析执行。

      知道文件上传到服务器后的存放路径和文件名称。

     目标文件可被用户访问。

一. 账号口令 1.1 检查设备密码复杂度策略(高危) 1.2 检查口令最小长度(高危) 1.3 检查是否设置口令更改最小间隔天数(高危) 1.4 检查是否设置口令生存周期(高危) 1.5 检查是否设置口令过期前警告天数(高危) 1.6 检查是否存在空口令账号(高危) 1.7 检查是否设置除root之外UID为0的用户(中危) 二. 认证授权 2.1 检查用户目录缺省访问权限设置(高危) 2.2 检查用户umask设置(中危) 2.3 检查重要文件属性设置(中危) 2.4 检查重要目录或文件权限设置(中危) 2.5 检查是否设置ssh登录前警告Banner(低危) 三. 日志审计 3.1 检查是否对登录进行日志记录(高危) 3.2 检查是否启用cron行为日志功能(低危) 3.3 检查是否配置su命令使用情况记录(低危) 3.4 检查日志文件是否非全局可写(低危) 3.5 检查安全事件日志配置(低危) 3.6 检查是否记录用户对设备的操作(低危) 3.7 检查是否配置远程日志功能(低危) 四. 协议安全 4.1 检查是否禁止root用户远程登录(高危) 4.2 检查是否禁止匿名用户登录FTP(高危) 4.3 检查使用IP协议远程维护的设备是否配置SSH协议,禁用telnet协议(高危) 4.4 检查是否修改snmp默认团体字(中危) 4.5 检查系统openssh安全配置(中危) 4.6 检查是否禁止root用户登录FTP(中危) 五. 其他安全 5.1 检查是否使用PAM认证模块禁止wheel组之外的用户su为root(高危) 5.2 检查是否设置命令行界面超时退出(高危) 5.3 检查是否关闭不必要的服务和端口(高危) 5.4 检查是否关闭系统信任机制(高危) 5.5 检查是否删除了潜在危险文件(高危) 5.6 检查系统core dump设置(中危) 5.7 检查root用户的path环境变量(中危) 5.8 检查系统是否禁用ctrl+alt+del组合键(中危) 5.9 检查密码重复使用次数限制(中危) 5.10 检查是否配置用户所需最小权限(中危) 5.11 检查系统内核参数配置(中危) 5.12 检查FTP用户上传的文件所具有的权限(低危) 5.13 检查/usr/bin/目录下可执行文件的拥有者属性(低危) 5.14 检查是否按用户分配账号(低危) 5.15 检查历史命令设置(低危) 5.16 检查系统磁盘分区使用率(低危) 5.17 检查日志文件权限设置(低危) 5.18 检查是否设置系统引导管理器密码(低危) 5.19 检查是否限制FTP用户登录后能访问的目录(低危) 5.20 检查是否设置ssh成功登录后Banner(低危) 5.21 检查是否使用NTP(网络时间协议)保持时间同步(低危) 5.22 检查是否关闭IP伪装和绑定多IP功能(低危) 5.23 检查是否限制远程登录IP范围(低危) 5.24 检查NFS(网络文件系统)服务配置(低危) 5.25 检查拥有suid和sgid权限的文件(低危) 5.26 检查是否配置定时自动屏幕锁定(适用于具备图形界面的设备)(低危) 5.27 检查是否安装chkrootkit进行系统监测(低危) 5.28 检查是否对系统账号进行登录限制(低危) 5.29 检查是否禁用不必要的系统服务(低危) 5.30 检查别名文件/etc/aliase(或/etc/mail/aliases)配置(低危) 5.31 检查账户认证失败次数限制(低危) 5.32 检查telnet Banner 设置(低危) 5.33 检查FTP Banner设置(低危) 5.34 检查是否关闭数据包转发功能(适用于不做路由功能的系统)(低危) 5.35 检查是否安装OS补丁(低危) 5.36 检查是否按组进行账号管理(低危) 5.37 检查是否删除与设备运行、维护等工作无关的账号(低危)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值