一、SQL注入
1、什么是SQL注入攻击?
攻击者通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
2、攻击原理:
攻击者通过Web应用程序利用SQL语句或字符串将非法的数抓插入到服务器端数据库中,获取数据库的管理用户权限,然后将数据库管理用户权限提升至操作系统管理用户权限,控制服务器操作系统获取重要信息及机密文件。
3、注入攻击一般步骤:
-
- 寻找SQL注入点
- 判断数据库类型
- 猜解表名、列名
- 猜字段名、字段值
- 提升权限进一步攻击
4、SQL注入攻击防范措施:
(1)安全编码:
(2)数据库加固:最小权限原则
除了在代码设计开发阶段预防SQL注入外,对数据库进行加固也能够把攻击者所能造成的损失控制在一定范围内:
(3)主要包括:
-
- 禁止将任何高权限帐户(例如sa,dba等等)用于应用程序数据库访问。更安全的方法是单独为应用创建有限访问帐户;
- 拒绝用户访间敏感的系统存储过程;
- 限制用户所能够访问的数据库表;
二、XSS
1、什么是XSS?
-
- 跨站脚本攻击
- 这是一种将恶意JavaScript代码插入到其他Web用户页面里执行以达到攻击目的的漏洞。攻击者利用浏览器的动态展示数据功能,在HTML页面里嵌入恶意代码。当用户浏览该页时,这些嵌入在HTML中的恶意代码会被执行,用户浏览器被攻击者控制,从而达到攻击者的特殊目的,如cookie窃取.帐户劫持、拒绝服务攻击等。
2、危害?利用方法
3、分类
4、出现XSS的原因
5、XSS攻击防范措施
- 对输入内容的特定字符进行编码,例如表示 html标记的 < > 等符号。
- 对重要的 cookie设置 httpOnly, 防止客户端通过document.cookie读取 cookie,此 HTTP头由服务端设置。
- 将不可信的值输出 URL参数之前,进行 URLEncode操作,而对于从 URL参数中获取值一定要进行格式检测
- 不要使用 Eval来解析并运行不确定的数据或代码,对于 JSON解析请使用 JSON.parse() 方法。
- 后端接口也应该要做到关键字符过滤的问题。
三、命令注入
1、什么是命令注入?
命令注入(Command Injection),是指在某些需要输入数据的位置,构造了恶意的代码破坏了原先的语句结构。而系统缺少有效的过滤,最终达到破坏数据、信息泄露甚至掌控电脑的目的。许多内容管理系统CMS存在命令注入漏洞。
命令注入和sql注入类似,sql注入是将sql语句放到请求数据中;而命令注入,则是将操作系统命令语句放到请求数据中。sql注入,需要判断服务器实用的是哪个数据库,而命令注入则需要判断服务器的操作系统。
2、命令注入的三个条件:
3、攻击过程
(1)用户或者是攻击者分析测试是否存在命令注入漏洞。
(2)通过服务器返回信息,确定是否存在命令注入。
(3)向服务器注入恶意命令。
(4)通过恶意命令获取服务器信息。
(5)用户在获取服务器控制权后,可以利用服务器做跳板,继续攻击或者是破坏服务器所在局域网。
4、危害
①继承web服务程序权限去执行系统命令或读写文件
②反弹shell
③控制整个网站甚至控制服务器
④进一步内网渗透
5、防护措施
①禁用部分系统函数:高危系统函数可直接禁用,从根本上避免程序中命令执行类漏洞的出现。禁用方法:打开PHP安装目录,找到php.ini,查找到disable_functions,添加需禁用的函数名,如:phpinfo()、eval()、passthru()、exec()、system()、chroot()、chgrp()、chown()等
②严格过滤关键字符(管道命令)
③严格限制允许的参数类型
④使用escapeshellarg函数来处理命令函数
⑤使用safe_mode_exec_dir指定可执行文件的路径(php.ini)
四、文件上传漏洞
1、什么是文件上传漏洞?
文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。
2、什么是webshell?
-
- WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。
- WebShell后门隐蔽较性高,可以轻松穿越防火墙,访问WebShell时不会留下系统日志,只会在网站的web日志中留下一些数据提交记录
- 上传漏洞的利用目的:将webshell上传到目标服务器中。
3、什么是一句话木马?
-
- 一句话木马,一小段ASP或PHP代码,是一个小型Webshell。
- 可以将一句话木马保存成单独的网页文件,也可以将代码插入到网站的某个asp或php网页文件中。
- 之后就可以通过中国菜刀这类客户端软件进行远程连接,从而控制整个网站。
ASP:
<%eval request("pass")%>
PHP:
<?php @eval($_POST[‘pass’]);?>
4、文件上传漏洞产生的原因?
-
- 对于上传文件的后缀名(扩展名)没有做较为严格的限制
- 对于上传文件的功能在程序设计上逻辑缺陷
- 权限上没有对于上传的文件目录设置不可执行权限
- 对于web server对于上传文件或者指定目录的行为没有做限制
- 服务器对所上传文件的读、写、执行、继承权限设计不严格
5、Webshell上传利用
上传方法:
-
- 直接上传WebShell
- 绕过客户端检测上传WebShell
- 绕过服务端文件扩展名检测上传WebShell
- 绕过文件内容检测上传WebShell
- 利用sql注入上传WebShell
wx搜索“校园聚之”查看渗透测试网络安全的更多内容