漏洞利用与安全加固
一、web时代
- Web1.0时代—静态页面:html或者htm,是一种静态的页面格式,不需要服务器解析其中的脚本,由浏览器如解析。
- Web2.0时代—动态页面:asp、aspx、php、jsp等,由相应的脚本引擎来解释执行,根据指令生成静态网页,在前端使用脚本程序增强交互。
1.依赖数据库
2.灵活性好,维护简便
3.交互性好,功能强大
4.存在安全风险,例如注入、跨站、上传等攻击
二、web安全
- web安全
客户端与服务器的典型交互过程
三、sql注入
-
SQL注入
由于程序中对用户输入检查不严格,用户可利用应用程序根据提交的数据动态生成SQL命令的特性,在URL、表单域,或者其他的输入域中输入自己的SQL命令,改变SQL命令的操作,将被修改的SQL命令注入到后端数据库引擎执行。其成因可以归结为以下两个原因:
①程序编写者在处理应用程序和数据库交互时,使用字符串拼接的方式构造SQL语句。
②未对用户可控参数进行足够的过滤便将参数内容拼接进入到SQL语句中。
最终,用户提交的参数数据未做充分检查过滤即被代入到SQL命令中,改变了原有SQL命令的“语义”,且成功被数据库执行。
内联式
- 内联式
终止式
- 终止式
终止式SQL注入:攻击者注入一段包含注释符的SQL语句,将原来的语句的一部分注释,注释掉的部分语句不会被执行。
四、xxs跨站
反射型
反射型跨站通过给别人发送带有恶意脚本代码参数的URL,当URL地址被打开时,特有的恶意代码参数被HTML解析、执行。它的特点是非持久化,必须用户点击带有特定参数的链接才能引起。
存储型
因为存储外部数据而引发的XSS漏洞,存储型XSS漏洞广泛出现在允许Web用户自定义显示信息及允许Web用户上传文件信息的Web应用程序中,大部分的Web应用程序都属于此类。
五、上传漏洞
文件上传攻击是指攻击者利用Web应用对上传文件过滤不严的漏洞,将应用程序定义类型范围之外的文件(木马或后门程序)上传到Web服务器,在上传成功后攻击者即可获得当前服务器的webshell。
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。正因如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站服务器的目的。
- 攻击条件
目标网站具有上传功能且木马能够成功上传。
上传的目标文件能够被Web服务器解析执行。
知道文件上传到服务器后的存放路径和文件名称。
目标文件可被用户访问。