Pikachu实验重现2

一.SQL注入漏洞的防范
1,.代码层面
a.对输入进行严格的转义和过滤
b.使用与处理和参数化
2.网络层面
a.通过WAP设备启用防SQL注入策略·
b.云端防护(360防卫网站,阿里云盾)
预防数字注入:很简单,因为ColID字段的类型是int的,那么我们只需要验证一下传递过来的id是不是整数就可以了。是整数就不存在注入;如果不是那么就有可能存在注入。即使不存在注入,把一个不是整数的id拼接进去也会造成执行错误。所以说不管是不是为了预防SQL注入,也都应该验证id是不是整数。验证方法嘛,可以用TryParse,可以用正则,也可以自己写函数验证。但是不建议用try异常的方式,因为这个有效率问题。这里还有一个特殊情况,就是对于批量删除这类的会传递过来多个数字,比如“1,2,3,10”,这个也需要验证一下,万一有人利用这个漏洞呢。至于验证方法也很简单,自己写个函数就ok了。
二.SQLMAP的简介
Sqlmap是开源的自动化SQL注入工具,由Python写成,具有如下特点:
1.完全支持MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和Informix等多种数据库管理系统。
2.完全支持布尔型盲注、时间型盲注、基于错误信息的注入、联合查询注入和堆查询注入。
3.在数据库证书、IP地址、端口和数据库名等条件允许的情况下支持不通过SQL注入点而直接连接数据库。
4.支持枚举用户、密码、哈希、权限、角色、数据库、数据表和列。
5.支持自动识别密码哈希格式并通过字典**密码哈希。
6.支持完全地下载某个数据库中的某个表,也可以只下载某个表中的某几列,甚至只下载某一列中的部分数据,这完全取决于用户的选择。
7.支持在数据库管理系统中搜索指定的数据库名、表名或列名
8.当数据库管理系统是MySQL、PostgreSQL或Microsoft SQL Server时支持下载或上传文件。
9.当数据库管理系统是MySQL、PostgreSQL或Microsoft SQL Server时支持执行任意命令并回现标准输出。
三.Sqlmap的经典用法
Pikachu实验重现2
Pikachu实验重现2