【靶场:7题 配备的靶场叫 绕过防护getshell】
一、WAF:Web应用防火墙
是通过执行一系列针对http/https的安全策略来专门为Web应用提供保护的一款产品。
工作在应用层,对来自Web应用程序客户端的各类请求进行内容检测和验证。
二、post和报错注入
1、什么是post注入
post传参,注入点在post数据包中。
2、Burp安装配置【burpsuite】
原理:浏览器和相关应用程序的中间 拦截、修改、重放数据包的 代理工具【中间插一杠子】。
拦截IP+port传的数据包。
工具:burpsuite_community_v1.7.35.jar
使用:如上Burp所在目录,按住Shift键,鼠标右击,选择“在此处打开命令窗口(W)”,如下图所示:
如上图所示,点击“在此处打开命令窗口(W)”后,在命令窗口中,
输入 java -jar burpsuite_community_v1.7.35.jar,运行Burp了,操作如下图所示:
burpsuite pro v2.1.jar 需要1.8版本的jdk
使用:需要使用破解版(loader-keygen)去调用本体版(burpsuite pro)
直接双击破解版的jar文件就可运行,若运行不成功,可以在cmd中java -jar 破解版的jar。
(1)、Burp设置代理:
打开后,Proxy代理标签页的Options属性,默认拦截的IP+port。
(2)、浏览器设置代理:
方式一:打开火狐浏览器,选项中搜索代理,设置为手动代理(http代理,IP+port)。
方式二:打开火狐浏览器,
扩展和主题
,搜索
proxy
,选择
FoxyProxy Standard
,
安装
完成后,会显示
在浏览器的右上角,点击选项--》点击添加
,新增一个代理,起个名字,配置代理。
(3)、抓包
浏览器、Burp代理配置好后,Burp的
Proxy代理
标签页的
Intercept拦截
属性:
Intercept is on
是开始抓包,
Intercept is off
是关闭抓包;
Forward
:对抓到的包进行放行;
Drop
:直接丢弃抓到的包,客户端得不到响应;
Action
:对找到的包进行处理【点击可以选择具体如何处理】。
如:
Send to Repeater
,他会把当前抓的包,复制一份放到
Repeater转发器
标签页中,以便多次尝试报错点,Repeater转发器中的
Go
表示放行该包。
在如下页面,可以多次尝试发送该post请求,判断是否存在注入点,给test后输入',是否报错,再输入-- a,再次显示是否正常。【注意在mysql中
--空格
,后面可以跟解释内容、或备注内容】。
接着判断字段个数,order by 5、order by 6,哪个开始报错了,说明此时超过字段数了,最后判断出来有5个字段,没有回显点,联合注再练习下,拼装user=test' union select 1,2,3,4,5查询下,发下union、select被过滤掉了,如下图所示:
尝试拼接出被过滤的union、select关键字,如 user=test' un union ion seselectlect 1,2,3,4,5
——对union进行了过滤,组装出来一个union
——对select进行了过滤,组装出来一个select
如下图所示:
注意:浏览器代理端口、Burp代理端口两边设置需要保持一致,如本文的8888,否则开启代理后,访问页面,报错:代理服务器拒绝链接,如下图所示:
(4)、https请求,CA证书配置:
https请求时,需要安装证书,确认Burp开启时,在浏览器中输入 IP:port 访问后,点击右上角的 CA Certificat 下载证书,证书如何安装可以百度一下。
3、POST注入、报错注入
报错注意原理1:windows资源管理器,非法路径报错。
【windows资管管理其中,路径中拼接
~或!
会报错(即windows文件目录中,不包含
~或!
时会报错),如下图所示】
post报错注入原理2:将数据库报的错,以非法路径报错的形式拼接展示出来。
数据库函数
extractvalue(目标xml文档,xml路径)
:对XML文档进行查询的函数,且xml路径出现非法路径时会报错,如
extractvalue('test.xlm','D::\tools\~')或select extractvalue(1,0x7e)
会报错。
注意: 0x7e 是~的十六进制
concat(str1,str2,...)
:将多个字符串链接成一个字符串,如: select concat('~',(select database()))。
报错回显如下语句:
select extractvalue(1,concat('~',(select database())))
select extractvalue(1,concat(1,(select database())))
如下报错获取用户名:
user=test' a and nd extractvalue(1,concat(0x7e,(seselectlect admin_name fr from om bees_admin),0x7e)) -- a
如下报错获取密码:
user=test' a and nd extractvalue(1,concat(0x7e,(seselectlect admin_password fr from om bees_admin),0x7e)) -- a
获取到的密码是md5密文,解密时发现只有31位,
发现extractvalue报错显示内容最多显示32位
,本身的~不可缺少!!,后面拼接了0-9,a-z尝试解密。
注意:and也被过滤掉了,所以这里a and nd组装了下and,from也被过滤掉了,fr from om组装了下from。
updataxml()和extractvalue()作用类似,提供数据库报错显示(数据库报错回显点)
靶场练习注意点:从传送门传过去后是网站首页,有订单、留言是post访问,但尝试后没有报错点;
试着给网站首页访问url后面拼接了/admin后,跳转到登录页面,隐藏的post的请求,
尝试后为字符型报错点。
2.
请求
头, 提交
POST
请求
, 需要比GET
请求
多提供几个
请求
头, 其中最重要的一个是 Content-Type: application/x-www-form-urlencoded。3.
请求
体格式,
请求
头和
请求
体之间有一个
请求
空行, 也就是一行空内容, 用来分隔
请求
头和
请求
体的内容, 如果中间的空行被不小心删掉了或者多了几行空行, 都会出现异常。原文链接:https://blog.csdn.net/wangyuxiang946/article/details/120253414。
目录准备好web环境
测试
代码
测试
结果使用
burp
suite抓包
准备好web环境
Kali 中已经有 Apache 了,在 /etc 目录下 ls 即可显示出来,所以只需要进行配置就可以了。(这里用其他 Linux 或 Windows 虚拟机都行)
打开 apache 服务的相关命令
/etc/init.d/apache2 start (开启)
/etc/init.d/apache2 restart (重启)
/etc/init.d/apache2 status (查看状态)
这里在 Kali
渗透
测试
基础-
POST
注入
POST
注入
是什么
POST
注入
靶场演练漏洞总结
只为对所学知识做一个简单的梳理,如果有表达存在问题的地方,麻烦帮忙指认出来。我们一起为了遇见更好的自己而努力????!
POST
注入
是什么
post
是一种传参方式,大多出现在各种框处,比如登录框,查询框,和各种与数据库有交互的框。
注入
攻击是:用户输入的数据当作代码执行,这里有两个关键点
关键点一:用户能够控制输入
关键点二:原本程序要执行的代码,拼接了用户输入的数据
post
注入
与get
注入
没有本质的区别,无非就是一个在表单框执
一、
测试
注入
点
这关只有输入为真回显字母为蓝色,假为红色,也会报错,所以可以用报错和盲注。这里是用')来闭合
uname=admin') or '1'='1'#&passwd=admin&submit=Submit
这里使用
报错注入
,具体步骤查看:
https://blog.csdn.net/weixin_44032232/article/details/109314974
二、
报错注入
uname=admin') and updatexml(1,
POST
注入
和GET
注入
几乎没有区别,只是GET
注入
在url上传参,而
POST
注入
在FORM表单中传递参数。
首先,我们需要判断FORM表单是否存在sql
注入
:
这是一个登录表单,我采取了通用的登录方式 a’ or 1=1 发现登录成功,说明存在SQL
注入
接下来我需要获取当前表的字段数来进行联合查询
用 order by 方法获取了当前表中有3个字段,之后判断回显点
通过联合查询 union select 1,2,3 发现会先点为2,3两字段位置,接下来就可以查询我们想要的内容了
使用
Burp
suite 进行
POST
方式的SQL
注入
文章目录使用
Burp
suite 进行
POST
方式的SQL
注入
0x01
Burp
suite介绍1.打开浏览器设置代理2.打开
burp
suite0x02
POST
方式
注入
1.打开 Less-11页面0x03
POST
方式的盲注1.
POST
方式的布尔型盲注1.1 Less-152.
POST
方式的时间盲注0x04 HTTP 头的
注入
方式1.HTTP 头
注入
原理2. HTTP User-Agent
注入
Less-183.HTTP Referer
感叹一下
学习
一个新的东西真的好难,网上有些东西如果不讲清楚的话,根本得不到想要的结果,并且错误百出。
接下来我将以一个新手的角度讲述如何使用
burp
来抓包,截包和改包。
我采用的是UC浏览器来配合
burp
的使用。
1.设置浏览器
设置---其他---更改代理设置
由于UC浏览器采用的是ie的内核,所以会弹出ie浏览器设置代理的窗口。
这时候电脑上的ie浏览器也设
打开网页按F12查看cookie,打开存储,发现有网页cookie.php
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rH57hXom-1650159967094)(https://raw.githubusercontent.com/lllwky/botany/main/img/image-20220410094243234.png)]
我们去访问
[外链图片转存失败,
修改
POST
参数的方法
最近看DVWA里SQL
注入
,在medium阶段有一个需求就是,修改
post
的参数,然后再
发送
出去。篡改参数是
注入
里的一个比较重要的方法。讲一下有哪些方法可以做到。
浏览器插件修改参数最初想到的就是浏览器插件,既然浏览器基本的功能可以显示包的内容,包括头部和参数,那应该会有插件可以修改参数吧。在chrome查找了很多,tamper chrome只能修改header,无法修改po
(转载)http://www.imququ.com/
post
/four-ways-to-
post
-data-in-http.html
HTTP/1.1 协议规定的 HTTP
请求
方法有 OPTIONS、GET、HEAD、
POST
、PUT、DELETE、TRACE、CONNECT 这几种。其中
POST
一般用来向服务端提交数据,本文主要讨论
POST
提交数据的几种方式。
我们知道,HTTP ...