搜索型:
闭合单引号和百分号,手工注入获取数据
Select * from news where id like ‘%password%’
简介:
搜索型注入又称之为文本框输入。一些网站为了方便面用户查询网站的资源,提供了搜索的功能,GET型一般用在网站上的搜索,POST型则用在用户的注入;可以从form表单的method属性来区分是GET还是POST。
搜索型(文本框 )注入往往是因为程序员在编写代码时,忽略了对其变量的过滤,导致攻击者输入恶意变量使数据库执行。
实验过程:
1、判断是否存在漏洞
引入注释符,避免受到后面%‘影响,根据响应的数据不同来判断
2、判断字段数
3、猜解数据库名和用户
4、获取到在pentest库中有account表和news表
5、获取account表中的列数据
6、最后注入,直接爆出数据库存储的数据。和前两种注入一样。
思考题:
1)注入分为哪几种类型?
根据数据类型分为:1、整型注入 2、字符型注入
根据注入语法分为:1、联合查询注入 2、报错型注入 3、布尔型注入 4、延时型注入 5、多语句查询注入
2)SQL注入危害有哪些?
1、数据库信息泄露
2、网页篡改:登陆后台后发布恶意内容
3、网站挂马:当拿到webshell时或者获取服务器权限以后,可以将一些网页木马挂在服务器上,去攻击别人,造成更严重的感染。
4、私自添加系统账号,方便连续的攻击,成为肉机
5、获取重要文件,造成被攻击方不可估量的损害。
3)如何有效防御
1、对进去数据库的特殊字符(单双引号 尖括号等)进行编码转换
2、不要使用动态拼装SQL,使用参数化SQL
注:参数化SQL是把它看作只是一个T-SQL查询,它接受控制这个查询返回什么的参数。通过使用不同的参数,一个参数化查询返回不同的结果。要获得一个参数化查询,你需要以一种特定得方式来编写你的代码,或它需要满足一组特定的标准。
3、不要使用管理员权限的数据连接,最好为每个应用使用单独的数据库连接。
4、应用异常信息尽量给出少的提示,自定义报错信息对原始报错信息进行包装
5,使用安服业务的公司建立防火墙,安全狗,云盾等防御手段
以前防御措施的一些不足之地作简单脑部(记录):
——字符串检测:限定内容只能由英文、数字等常规字符,如果检查到用户输入有特殊字符,直接拒绝,但缺点是,系统中不可避免地会有些内容包含特殊字符,这时候总不能拒绝入库。
——字符串替换:把敏感危险字符替换成其他字符,缺点是危险敏感字符可能有很多,一一枚举替换相当麻烦,也很有可能有漏网之鱼。
——存储过程:把参数传到存储过程进行处理,但并不是所有数据库都支持存储过程。执行该过程的命令也是通过拼接字符串出来的,也是存在漏洞点。
(如有不足或者侵权的地方,请尽快联系我,我会及时修改或删除,非常感谢)
我们要以高涨的信心和喷涌的力量去战斗。加油吧,少年,去追求更好的自己!