渗透测试之数据库注入——cookie注入
cookie注入就是数据库注入的一种;cookie会记录我们的一些信息以方便我们的体验更佳。但这也给网站造成了一定的风险。
什么是数据库注入,什么又是Cookie注入?
我们在渗透测试的过程中不能只知道如何使用工具、如何进行注入,还要知道一定的原理。这样有利于我们日后技术的提升:
数据库注入:就是把你输入的数据当作代码来执行。什么意思捏?假设你想登入一个网站那么他的简易后端代码大概是这样的:
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$conn = mysqli_connect('localhost','root','root','table');//连接数据库
$sql = "select username,password from loginname where username = $username";//执行的sql语句
$result = mysqli_query($conn,$sql);
$array=mysqli_fetch_array($result);
if($array['username']==$username&&$array['password']=$password){
echo '登入成功';
}else{
echo '登入失败';
}
?>
我们在表单中输入的数据出现在这里中的$sql这个执行的sql语句中,我们可以利用SQL语句进行查询数据库中的数据,这就是数据库注入。例如:
利用一些特殊的语句 或者工具可以得到一些重要的数据。
cookie注入就是数据库注入的一种;cookie会记录我们的一些信息以方便我们的体验更佳。但这也给网站造成了一定的风险。以谷歌浏览器为例,来看一个简单的网页
我们来手动输入一下cookie再来看一下这个页面:
刷新一下页面
可以看见出来了222的数字
那么我们再来看一下这个网页的后端代码:
<?php
@$a = $_REQUEST['a'];
echo $a;//cookie可以把a的值传入到代码中去
?>
这里只是简单的代码,一些网站中cookie是可以把数据传入到sql语句中的。
$_REQUEST[]函数可以进行GET,POST,Cookie传参,但是在php5.4以上版本不可以进行cookie传参了。下面上靶场:
这里进行的是GET传参我们来试一下是不是存在cookie传参
刷新一些会发现页面没有变化,说明可以是可以进行cookie传参的(刷新时要把GET传参的数据删除网址框中id=171)
首先我们用order by 来猜一下这个表里面有几个字段:
发现order by 10是正常的 11就是错误的了,说明这个表有10个字段(如何burp爆破可去某度)
然后对表进可以用burp进行爆破:
爆破出表是admin表,exists()函数是对括号的内容是否正确返回一个布尔值
接下来就是猜测先错位了
用来联合查询显示出先错位 union
可以看出页面的先错位有2,7,8,9,3
我们最后是要有数据的,还缺少字段名,这一步和表一样同样需要爆破
依然用exists函数,最后爆破出含有username,和password字段,最后用联合查询在显错位上显示我们想要的数据:
得出数据后我们发现password字段明显进行了加密,并且是16位的那大概率是md5加密,我们可以找一个解密网址进行解密
顺利破解。
渗透测试没有一个准确的模式,要用自己所学的技巧,工具大量的进行尝试。一起加油!!!
上述没有涉及burp爆破可以自行搜索。
以上靶场来自于掌控安全学院实战靶场,所有的渗透未经授权都是违法,慎记,以上均用于学习用途!!!
更多推荐
所有评论(0)