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、打击,打开扩展和主题;

sql联合注入--Head传参_第1张图片

2、在搜索栏输入ModHeader,搜索;

sql联合注入--Head传参_第2张图片

3、点击,进行插件的下载,下载完成(等会会用到)。

本次靶场要求:

sql联合注入--Head传参_第3张图片

 第一步,判断是否存在sql注入:

sql联合注入--Head传参_第4张图片

 可以看到,第一节get传参的方式出现了报错,被防火墙拦截了(防火墙一般只拦截Get,Post方式),说明使用get,post传参进行注入较为困难。尝试使用插件进行Head传参进行sql注入。

打开插件,添加一个请求头,如图。

sql联合注入--Head传参_第5张图片

启动插件

在Name添加cookie,Value构造值,如下图。 

sql联合注入--Head传参_第6张图片

在URL栏回车,发现新闻内容依旧存在,说明Head传参方式可行。

在Value值构造我们的sql注入语句,插件中空格不可直接使用,需要用+号代替空格(绕过waf),每次在插件构造sql语句后,需要在URL栏回车进行访问测试。 

5、判断数据库字段数,构造语句:id=171+order+by+20进行判断,二分法依次测试,得出字段数为10,并可知存在sql注入;

sql联合注入--Head传参_第7张图片

6、猜测数据库中是否存在admin表并判断回显点;

构造语句:id=171+union+select+1,2,3,4,5,6,7,8,9,10+from+admin

URL栏为:掌控安全学院实战演练靶场

结果如下:

sql联合注入--Head传参_第8张图片

可以看到,存在回显点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(有五个回显点,这里随便选了两个进行显示,在其它回显点显示的内容也是一样的)

得出以下内容:

sql联合注入--Head传参_第9张图片

可以知道username:admin,password:b9a2a2b5dffb918c(明显的md5加密算法,进行撞库查询),使用在线工具或者网站。

sql联合注入--Head传参_第10张图片

 通过撞库得出password:welcome

所谓的破解是通过字典,进行枚举查询(也叫撞库),得出结果。

拿到管理员账号和密码之后,没有看到flag,说明还需要登录。

我们尝试找到登录界面:在初始网页输入admin发现成功进入登录页面(我们是管理员登录,就首先猜测admin,不行在猜login等)

 得到以下页面,输入我们查找出的账号:admin和密码welcome并输入提示的验证码

sql联合注入--Head传参_第11张图片

输入完成后,出现以下界面:

sql联合注入--Head传参_第12张图片

 

拿到flag,完成以上靶场的要求。

总结:

1、首先进行测试是否存在注入点;

2、发现防火墙拦截(waf),分析防火墙是什么类型的(我们判断出改靶场网页防火墙一般只会拦截Get,Post传参),使用Head传参方式尝试绕过;

3、绕过后,进行判断注入点位置;

4、联合查表法部分关键字被拦截,绕过后任然无法使用,灵活变通直接猜测表的名字等。

5、得出字段数后,根据第一节经验首先猜测表单名称;

6、分析管理员后台登录路径。

你可能感兴趣的:(网安,网络安全,sql,mysql)