SQL Inject注入漏洞防范/sqlmap工具使用入门及案例介绍/XSS基本概念和原理介绍/反射型XSS、存储型XSS漏洞实验演示和讲解/nmap下载安装

SQL Inject注入漏洞的防范(以摘录为主)

SQL Inject注入漏洞的防范可分为两部分:代码层面和网络层面。
代码层面:1.对输入进行严格的转义和过滤。2.使用预处理和参数化
网络层面:1.通过WAF设备启用防SQL Inject注入策略(或类似防护系统)
2.云端防护(360网站卫士,阿里云盾等)
PHP防范转义+过滤:以php为例,可以写一个函数对前端输入进来的数据进行转义,将里面的特殊符号用mysql提供的方法进行转义例如转义:mysqli_real_escape_string($link, $data);
过滤:str_replace("%"," “, $_POST[‘username’]),把post里面的数据里面含有%的替换成空.
由于采用数据库的黑名单的形式进行转移过滤,由于代码升级较快,转义和过滤会有所疏忽,所以在sql注入防护不推荐使用。
推荐使用预处理和参数化的方法,以php为例有PDO预处理的方法,可以通过它提供的方法去操作数据库。
$username= $_GET[‘username’];
$password= $_GET[‘password’];
try{
$pdo=new PDO(‘mysql:host=localhost;dbname=ant’, ‘root’,‘root’);
$sql=“select* from admin where username=? and passowrd=?”;
$stmt= $pdo->prepare( $sql);//先不传参数,先预处理
// var_dump( $stmt);
$stmt−>execute(array( $username, $password));
//这个时候在把参数传进去, 以索引数组的方式传进去, 而不是拼接, 就成功防止了注入
}catch (PDOException $e){
echo $e->getMessage();
}
?>
sql注入漏洞的产生是因为前端传进来的数据被拼接到了后台的数据库中,在PDO中写sql的时候不会将参数传进去,而是用占位符去写这个参数,然后在跟数据库交互的时候会先用占位符代替的语句去和数据库去交互,然后进行一个预处理,将sql进行编译和执行,这个时候再把参数传进去。
这是推荐的做法。
在网络防护层面:在web应用服务器前部署WAF设备:topo 防火墙会将恶意代码识别出并阻断。
为保证安全需要同时推进预处理的部署和防火墙的建设。

sqlmap工具使用入门及案例介绍

sqlmap工具使用:自动化的用来测试sql注入和数据库的接管工具。
sqlmap经典用法
第一步:
-u “xxx” --cookie=“ yyy”//带上cookie对URL进行注入探测
第二步:
-u “xxx” --cookie= “yyy” -current-db//对数据库名进行获取
第三步:
-u “xxx” --cookie=“yyy” -D pikachu --tables//对数据库的表名进行枚举
第四步:
-u “xxx” --cookie=“yyy” -D pikachu-T users –columns//对dvwa库里面的名为users表的列名进行枚举
在pikachu实验环境进行具体演示:
首先找到前端的输入点,随意输入一个数。发现是一个get请求,将数据复制在sqlmap中进行运行。
SQL Inject注入漏洞防范/sqlmap工具使用入门及案例介绍/XSS基本概念和原理介绍/反射型XSS、存储型XSS漏洞实验演示和讲解/nmap下载安装
sqlmap.py -u"xxxx"对url中的参数进行sql注入漏洞的检验。
SQL Inject注入漏洞防范/sqlmap工具使用入门及案例介绍/XSS基本概念和原理介绍/反射型XSS、存储型XSS漏洞实验演示和讲解/nmap下载安装
SQL Inject注入漏洞防范/sqlmap工具使用入门及案例介绍/XSS基本概念和原理介绍/反射型XSS、存储型XSS漏洞实验演示和讲解/nmap下载安装
依次获取表名列名以及用户名密码等相关信息,可以通过sqlmap自带的工具对密码进行**。最后获取有用的信息。

XSS基本概念和原理介绍(以摘录为主)

目录:1.跨站脚本漏洞概述
2.跨站脚本漏洞类型及测试流程
3.反射型XSS(get&post)演示和原理分析
4.存储型XSS演示和与原理分析
5.Dom型XSS演示和原理分析
6.XSS的危害-获取cookie的原理和实验演示
XSS进行钓鱼的原理和实验演示
XSS获取键盘记录原理和实验演示
7.XSS盲打演示和原理分析
8.XSS的过滤和绕过(filter&htmlspecialchars)
9.XSS输出在href和js中的案例分析
10.XSS常见防范措施
跨站脚本漏洞概述:
1.XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位.
2.XSS是一种发生在Web前端的漏洞,所以其危害的对象也主要是前端用户。
3.XSS漏洞可以用来进行钓鱼攻击、钓鱼攻击、前端js挖矿、用户cookie获取。甚至可以结合浏览器自身的漏洞对用户主机进行远程控制等。
XSS(窃取cookie)攻击流程
发现存在XSS漏洞的站点,攻击者会根据XSS的类型,将恶意的代码通过XSS漏洞插入到网站的某一个页面当中去欺骗用户进行访问,一旦用户访问页面就会触发脚本返回带有恶意JS的页面,从而获取用户的cookie。得到cookie后就可以伪造用户登陆造成破坏。
跨站脚本漏洞常见类型
危害:存储型>反射型>DOM型
反射型:交互的数据一般不会被存在在数据库里面,一次性,所见即所得,一般出现在查询类页面等。
存储型:交互的数据会被存在在数据库里面,永久性存储,一般出现在留言板,注册等页面。
DOM型:不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性也属于反射型。
XSS漏洞形成的原因:
形成XSS漏洞的主要原因是程序对输入和输出的控制不够严格,导致"精心构造“的脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害。
跨站脚本漏洞测试流程:
1.在目标站点上找到输入点,比如查询接口,留言板等;
2.输入一组"特殊字符+唯一识别字符",点击提交后,查看返回的源码,是否有做对应的处理;
3.通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合);
4.提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞;
TIPS:
1.一般查询接口容易出现反射型XSS,留言板容易出现存储型XSS;
2.由于后台可能存在过滤措施,构造的script可能会被过滤掉,而无法生效.或者环境限制了执行(浏览器);
3.通过变化不同的script,尝试绕过后台过滤机制;
XSS实验演示-环境介绍
测试目标:Pikachu–xss
测试工具:firefox+游览器开发者工具

一个基础的反射型XSS

在pikachu实验环境进行反射型xss演示操作:
1.在对应的输入点输入特殊的字符:’"<>666,以验证输入在提交时会不会被过滤/在输出时有没有被处理。
SQL Inject注入漏洞防范/sqlmap工具使用入门及案例介绍/XSS基本概念和原理介绍/反射型XSS、存储型XSS漏洞实验演示和讲解/nmap下载安装
2.查看页面源码,找到输出点。
SQL Inject注入漏洞防范/sqlmap工具使用入门及案例介绍/XSS基本概念和原理介绍/反射型XSS、存储型XSS漏洞实验演示和讲解/nmap下载安装
可见输入的字符被原封不动地输出到了p标签。
3.尝试输入JS代码,看是否会被返回执行。回到输入点尝试输入JS代码。这里由于输入框长度的限制需要使用开发者工具更改能够输入的值的长度。输入payload,查看返回结果。
SQL Inject注入漏洞防范/sqlmap工具使用入门及案例介绍/XSS基本概念和原理介绍/反射型XSS、存储型XSS漏洞实验演示和讲解/nmap下载安装
SQL Inject注入漏洞防范/sqlmap工具使用入门及案例介绍/XSS基本概念和原理介绍/反射型XSS、存储型XSS漏洞实验演示和讲解/nmap下载安装
可见返回弹出了xss的窗口,可知输入的字符被原封不动地输出了。
反射型跨站脚本漏洞之get&post
GET方式地XSS漏洞更加容易利用,一般利用地方式是将带有跨站脚本的URL伪装后发送给目标而POST方式由于是以表单方式提交,无法直接使用URL方式进行攻击。

存储型XSS漏洞实验演示和讲解

存储型XSS和DOM型XSS的解析
存储型XSS:存储型XSS漏洞跟反射型形成的原因一样,不同的是存储型XSS下攻击者可以将脚本注入到后台存储起来,构成更加持久的危害,因此存储型XSS也称"永久型"XSS。
在pikachu平台进行实际的实验演示:
1.在留言板中随意输入一个数据,会发现数据被后台存储起来了。随着页面的刷新数据也不会消失。
用’"<>?&666等特殊字符测试此处有没有XSS漏洞。,结果输入的内容被当作留言显示了出来。
SQL Inject注入漏洞防范/sqlmap工具使用入门及案例介绍/XSS基本概念和原理介绍/反射型XSS、存储型XSS漏洞实验演示和讲解/nmap下载安装
2.查看页面源代码,找到输出点。
SQL Inject注入漏洞防范/sqlmap工具使用入门及案例介绍/XSS基本概念和原理介绍/反射型XSS、存储型XSS漏洞实验演示和讲解/nmap下载安装
可见输入的字符没有经过转义等操作被原封不动地输出到了p标签。
3.尝试输入JS代码,看是否会被返回执行。回到输入点尝试输入JS代码< script >alert(‘xss’)</ script >。查看返回结果。
SQL Inject注入漏洞防范/sqlmap工具使用入门及案例介绍/XSS基本概念和原理介绍/反射型XSS、存储型XSS漏洞实验演示和讲解/nmap下载安装可见xss的字符被弹了出来,意味着刚刚输入的留言已经被存在了数据库中。
存储型和反射型的区别是:每当刷新页面,存储型会再次触发脚本的运行,所以存储型相较于反射型危害更大,所用访问相关页面的用户都会受到侵害。

安装扫描工具nmap

1.登陆nmap官网,点击最新版本进行下载。
2.下载完成后,打开安装包根据提示进行安装。
3.点击图标,检验安装成功。
SQL Inject注入漏洞防范/sqlmap工具使用入门及案例介绍/XSS基本概念和原理介绍/反射型XSS、存储型XSS漏洞实验演示和讲解/nmap下载安装