sql联合注入--Head传参
未知攻,何知守。
进行网络安全实践操作时,必须遵守网络安全法。
网络安全法全文(必看)https://zhuanlan.zhihu.com/p/27336286
为什么要学习网络安全:
网络安全已经成为各国关注的焦点,不仅关系到机构和个人用户的信息资源和资产风险,也关系到国家安全和社会稳定。进入21世纪,随着信息化建设和IT技术的快速发展,各种网络技术的应用更加广泛深入,同时出现很多网络安全问题,致使网络安全技术的重要性更加突出。计算机安全问题,应该象每家每户的防火防盗问题一样,做到防范于未然。甚至不会想到你自己也会成为目标的时候,威胁就已经出现了,一旦发生,常常措手不及,造成极大的损失。
转载自:为什么需要网络安全 - 业百科
网页与数据库交互时,存在多种传递参数方式:Get传参,Post传参,Head传参等。
Post传参:
在网页上变量传递的参数,不会在URL栏上显示出来,例如我们在登录时,输入的账号与密码并不会在URL栏上显示,这就是Post传参的概念。
Get传参:
我们访问网页时,传递的参数会在URL栏上显示出来。
Head传参:
在协议的请求头进行参数的传递,在URL栏看不到传递的参数。
准备工作:
1、需要注册靶场,在第一个文章有(sql联合注入--Get传参_等黄昏等你来的博客-CSDN博客);
2、浏览器下载插件ModHeader(能添加请求头的插件都可以)。
以搜狐浏览器为例下载该插件:
1、打击,打开扩展和主题;
2、在搜索栏输入ModHeader,搜索;
3、点击,进行插件的下载,下载完成(等会会用到)。
本次靶场要求:
第一步,判断是否存在sql注入:
可以看到,第一节get传参的方式出现了报错,被防火墙拦截了(防火墙一般只拦截Get,Post方式),说明使用get,post传参进行注入较为困难。尝试使用插件进行Head传参进行sql注入。
打开插件,添加一个请求头,如图。
启动插件
在Name添加cookie,Value构造值,如下图。
在URL栏回车,发现新闻内容依旧存在,说明Head传参方式可行。
在Value值构造我们的sql注入语句,插件中空格不可直接使用,需要用+号代替空格(绕过waf),每次在插件构造sql语句后,需要在URL栏回车进行访问测试。
5、判断数据库字段数,构造语句:id=171+order+by+20进行判断,二分法依次测试,得出字段数为10,并可知存在sql注入;
6、猜测数据库中是否存在admin表并判断回显点;
构造语句:id=171+union+select+1,2,3,4,5,6,7,8,9,10+from+admin
URL栏为:掌控安全学院实战演练靶场
结果如下:
可以看到,存在回显点2,3,7,8,9。这些位置都可以在页面与服务器交互时查询出现数据, 并表明我们的猜测是正确的(存在admin表),继续进行合理的猜测是否存在username段,password字段并查询出数据(在回显点的数字进行查询数据才能显示出来)。
7、判断admin表中字段名并查询数据:
构造语句:id=171+union+select+1,username,password,4,5,6,7,8,9,10+from+admin(有五个回显点,这里随便选了两个进行显示,在其它回显点显示的内容也是一样的)
得出以下内容:
可以知道username:admin,password:b9a2a2b5dffb918c(明显的md5加密算法,进行撞库查询),使用在线工具或者网站。
通过撞库得出password:welcome
所谓的破解是通过字典,进行枚举查询(也叫撞库),得出结果。
拿到管理员账号和密码之后,没有看到flag,说明还需要登录。
我们尝试找到登录界面:在初始网页输入admin发现成功进入登录页面(我们是管理员登录,就首先猜测admin,不行在猜login等)
得到以下页面,输入我们查找出的账号:admin和密码welcome并输入提示的验证码
输入完成后,出现以下界面:
拿到flag,完成以上靶场的要求。
总结:
1、首先进行测试是否存在注入点;
2、发现防火墙拦截(waf),分析防火墙是什么类型的(我们判断出改靶场网页防火墙一般只会拦截Get,Post传参),使用Head传参方式尝试绕过;
3、绕过后,进行判断注入点位置;
4、联合查表法部分关键字被拦截,绕过后任然无法使用,灵活变通直接猜测表的名字等。
5、得出字段数后,根据第一节经验首先猜测表单名称;
6、分析管理员后台登录路径。
相关文章
- 为什么sql注入的时候会写union select 1,2~~~~~from admin
- 防止SQL注入
- SQLServer数据库及注入方法
- PDO防止SQL注入具体介绍
- 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 3.全局防护Bypass之Base64Decode
- Spring的核心机制:依赖注入(xml方式)
- sql 批量修改,Update Select 嵌套更新或批量更新一句SQL语句搞定,
- Laravel 预防 SQL 注入
- Entity Framework关于SQL注入安全问题
- 网络安全-联合查询注入
- 微信小程序端在函数组件中使用 mobx 注入 store 失败
- Javascript中的依赖注入
- vue2.x,vue3.x使用provide/inject注入区别
- sql联合注入--Get传参
- btslab全攻略——注入之sql注入认证
- web渗透测试----26、SQL注入漏洞--(2)SQL注入漏洞的挖掘(白盒)
- 《WEB安全渗透测试》(8)SQL注入实战:cookie注入
- 网络安全——SQL注入漏洞
- 记录注入
- 《Web性能实践日志》一1.2 代码注入
- sql server 小技巧(3) SQL Server 2012 数据库完整导出到SQL Azure (包括数据)
- sqlmap跑宽字节注入(渗透测试之SQL注入之宽字节注入)
- opendocman漏洞‘ajax_udf.php‘多个SQL注入
- SQL注入:为什么拿不到os-shell?
- Setter注入
- Web安全之SQL注入攻击
- 【spring框架】bean属性注入方式
- PHP防止SQL注入与几种正则表达式讲解
- SQL注入攻防入门详解
- Java 构造函数注入 有的不需要自动注入
- sql注入学习笔记,什么是sql注入,如何预防sql注入,如何寻找sql注入漏洞,如何注入sql攻击 (原)