Kalpa Blog|

HKalpa

园龄:2年11个月粉丝:16关注:2

SQL注入(高危漏洞) - 总结

概念基础

  • SQL注入的原理:服务器没有对用户输入的数据进行过滤/服务器对用户输入的数据过于信任,导致用户输入的恶意语句被执行。

  • SQL注入的危害:危害数据库,泄露信息,获得服务器管理员权限等。

  • SQL注入的防御:对用户输入的所有内容进行过滤,数据库命名复杂,敏感信息加密,尽量降低数据库的权限等。

SQL注入分类

  • 基础层面GET型注入:联合注入,报错注入,盲注(时间盲注/布尔盲注)

  • 进阶层面POST型注入:cookie注入,referer注入,UA头注入,XFF头注入(位置的不同,手法完全基于基础层面)

SQL注入手法思路

  • 先找主入点,在网页搜索栏,登录框等等,寻找传参?*=;然后在传参处输入and+判斯函数/判断语句,根据页面回显/页面响应时间长短判断是否存在注入,根据回显内容使用不同的注入手法。

  • 有回显联合注入:①判断闭合符②order by查列数③判断回显位④union select注入

  • 有回显报错注入:①判断闭合符②根据回显错误,尝试不同的报错函数③根据找到的报错函数进行注入

  • 无回显布尔盲注:①判断闭合符②构造布尔函数判断真假③二分法判断查询库名/表名/字段名长度④利用ASCII码进行爆破得出数据

  • 无回显时间盲注:和布尔盲注手法基本相同,利用时间函数(sleep();benchmark();大笛卡尔积等构造一些函数式)

  • SQL注入万能密码原理:闭合原有数据库查询语句,利用登陆判断机制,输入判断为真的语句,从而使前端认为登陆判断为真,例:'or '1'='1'

SQL注入手法细节

常用sql注入函数

  • SQL注入的函数:union联合 order by排序 select查询 limit限制查询记录的行数 concat拼接等数据库函数

  • MySQL辅助函数:database()函数返回当前数据库名;version()函数以一个字符串形式返回MySQL服务器的版本;user()函数(这个函数还有SYSTEM_USER、SESSION_USBR两个别名)返回当前MySQL用户名

  • MsSQL/SQLSerer辅助函教:@@version返回当前数据库名;suser_name()用户登录名;user_name()/user()用户在数握库中的名字;db_name()数据库名;app_name()函数返回当前会话的应用程序名称;current_user()返回当前用户的名字;host_name()返回当前用户所登录的计算机名字;system_user()返回当前所登录的用户名称

常用SQL注入闭合符

  • 单引号,双引号,括号,极少量的中括号,组合使用的类型

常用SQL注入绕过手法

架构层绕WAF

  • ①用户本身是进入WAF后访问Web页面的,只要我们找到Web的真实IP,直接访问,绕过WAF就不在话下了

  • ②在同网段内,页面与页面之间,服务器与服务器之间,通过WAF的保护,然后展示给我们,只要我们在内部服务之间进行访问,即可绕过WAF

  • ③边界漏洞,同样类似于同网段数据,我们可以利用已知服务器存在的SSRF漏洞,将数据直接发送给同网段的Web2进行SQL注入

  • ④二次注入(极少见)

资源限制层面绕WAF

  • ①脏数据

协议层面绕过WAF

  • ①更改传输方式get/post等

  • ②更改文件类型:Content-Type为application/x-www-form-urlencoded数据格式进行过滤,因此我们只要将Content-Type格式修改为multipart/form-data即可绕过waf

  • ③参数污染:例如index.php?id=1&id=2,waf也许仅对前部分的id=1进行检测,而后面的参数并不做处理。这样我们就可以在id=2的后面写入sql注入语句进行sq注入

规则层面绕过

  • ①URL编码/双重URL编码

  • ②base64编码

  • ③hex编码

  • ④大小写

  • ⑤内联注释

  • ⑥复写;等价符

  • ⑦宽字节(极少见),需要数据库使用gbk编码

  • ⑧堆叠(极少见)

  • ⑨等价函数

  • ⑩分块传输

本文作者:HKalpa

本文链接:https://www.cnblogs.com/HKalpa/p/17220009.html

版权声明:本作品采用本人所有操作均在实验环境下进行,用于其它用途后果自负,作者不承担相应的后果。中国大陆许可协议进行许可。

posted @   HKalpa  阅读(279)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 绅士 薛之谦
绅士 - 薛之谦
00:00 / 00:00
An audio error has occurred.

作词 : 薛之谦

作曲 : 薛之谦

编曲 : 杨子朴

好久没见了什么角色呢

细心装扮着

白色衬衫的袖扣是你送的

尽量表现着像不在意的

频繁暴露了自欺欺人者

越掩饰越深刻

你说我说听说

忍着言不由衷的段落

我反正决定自己难过

我反正决定自己难过

我想摸你的头发

我想摸你的头发

只是简单的试探啊

我想给你个拥抱

我想给你个拥抱

像以前一样可以吗

你退半步的动作认真的吗

小小的动作伤害还那么大

我只能扮演个绅士

才能和你说说话

我能送你回家吗

我能送你回家吗

可能外面要下雨啦

我能给你个拥抱

我能给你个拥抱

像朋友一样可以吗

我忍不住从背后抱了一下

我忍不住从背后抱了一下

尺度掌握在不能说想你啊

你就当刚认识的绅士

闹了个笑话吧

尽量表现着善解人意的

尽量表现着善解人意的

频繁暴露了不欲人知的

越掩饰越深刻

想说听说别说

忍着言不由衷的段落

我反正注定留在角落

我想摸你的头发

我想摸你的头发

只是简单的试探啊

我想给你个拥抱

我想给你个拥抱

像以前一样可以吗

你退半步的动作认真的吗

你退半步的动作认真的吗

小小的动作伤害还那么大

我只能扮演个绅士

才能和你说说话

我能送你回家吗

我能送你回家吗

可能外面要下雨啦

我能给你个拥抱

像朋友一样可以吗

我忍不住从背后抱了一下

我忍不住从背后抱了一下

尺度掌握在不能说想你啊

你就当刚认识的绅士

闹了个笑话吧

你能给我只左手

你能给我只左手

牵你到马路那头吗

我会像以前一样

我会像以前一样

看着来往的车子啊

我们的距离在眉间皱了下

迅速还原成路人的样子啊

越有礼貌我越害怕

绅士要放得下

制作人 : 杨子朴

钢琴 : 杨子朴

吉他 : 杨子朴

合声 : 杨子朴

录音 : 金宇

混音 : 王用均