SQL注入
-
在这里我们加入输出SQL语句的代码 -
这里我们可以直接看到查询对应的查询语句 -
在浏览器中我们通过f12键判断出语句提交是post方式,在这里我们需要打开bq进行post传值的改变 -
这里是最开始的情况下,对应的网页和bq中的post界面 -
在这个过程中,我们可以通过bq中的repeater进行重发,根据返回的数据报对网页进行对应的判断,当然也可以通过前面的先截断网络,再放包回到浏览器中查看网页的情况 -
在这里,我们将id等于一个不对的值,如果我们得到的还是一个原来一样正常的网站,那么说明没有sql注入/网站存在对应字符的过滤规则;如果我们得到网站与原来的页面有所不同,说明可能存在注入点 -
我们得到的界面告诉我们,这里有存在sql注入的可能性,注入点是id -
在确定有注入点后,我们尝试使用联合查询对users中的数据进行查询 -
查询成功 -
我们在拥有数据库列名的情况下,对users表的两列重要数据进行查询
- 查询成功,我们成功获取到了该网站的所有账号
目录遍历漏洞1
http://127.0.0.1/pikachu/vul/dir/dir_list.php?title=jarheads.php
http://127.0.0.1/pikachu/vul/dir/dir_list.php?title=truman.php
- 在已知文件所在位置的前提下,我们通过尝试在刚刚的目录下访问1.php(内容为1111)
- 在已知文件所在位置的前提下,我们在www目录下有phpinfo.php文件,我们在网站尝试进行访问
- 利用…/…/…/…/进行访问,这里一个…/表示一个上一级 ,最后访问成功
- 在日常过程中,我们可以通过WebPathBrute这个工具(一个Web目录暴力探测工具)
目录遍历漏洞2
<?php
function my_dir($dir) {
$files = array();
if(@$handle = opendir($dir)) {
while(($file = readdir($handle)) !== false) {
if($file != ".." && $file != ".") {
if(is_dir($dir."/".$file)) {
$files[$file] = my_dir($dir."/".$file);
} else {
$files[] = $file;
}
}
}
closedir($handle);
return $files;
}
}
echo "<pre>";
$d=$_GET['d'];
print_r(my_dir($d));
echo "</pre>";
- 在浏览器中进行访问网址,http://127.0.0.1/dir.php?d=pikachu
- 在在浏览器中进行访问网址,http://127.0.0.1/dir.php?d=…\ 即可访问到www上一级的全部文件结构
- 到此,通过这个漏洞,我们可以获取到整个网站的源码结构,文件名。我们需要结合其他思路和漏洞进行安全测试
目录遍历和文件读取漏洞的区别
获取到文件夹、文件的内容,但不能读到文件里面的内容
读取文件的内容,但不能读取文件夹的内容,也就是单个文件的读取
文件上传漏洞
- 我们先尝试上传正常的照片,上传成功-
- 在这里我们尝试上传php后缀的文件,失败,说明这里对文件后缀进行了过滤
- 在这里我们将刚刚文件的后缀进行修改成jpg,进行上传
- 对上传的文件进行访问,发现报错,这里的原因是因为后缀是jpg,所以文件中的php代码并没有执行
- 我们打开burpsuit,再次上传p,jpg 但与前面不同的是,我们对数据报进行修改,让它以php的后缀上传
- 可以看到,在这里我们成功上传文件
- 接着我们通过访问对应文件,成功将上传的php文件正常执行,获得了对应网站的信息
文件下载漏洞
- 下载照片后,复制照片的下载地址,进行比对,发现只有文件名不同,我们可以尝试下文件下载漏洞
http://127.0.0.1/pikachu/vul/unsafedownload/execdownload.php?filename=ai.png
http://127.0.0.1/pikachu/vul/unsafedownload/execdownload.php?filename=kb.png
- 在已知网站的结构下(我有着整个网站的源码),我们可以通过改变后面的ai.png这些来下载同级或者不同级目录下的其他文件,在这里我们选择下载www目录下phpinfo.php文件,成功下载!
|