0%

THM打靶日寄29-Anonymous Playground

  • 扫描打点:

    • 80

      通过 /images 得到是 apache2.4.29

      扫到 robots.txt

      访问显示 You have not been granted access.Access denied.

      抓包出来,cookie 字段为 access=denied ,试着改了下值,是 granted 的时候返回了一串长得像账密的凭证:

      hEzAdCfHzA::hEzAdCfHzAhAiJzAeIaDjBcBhHgAzAfHfN

      看房间的提示说 zA 要变成 a ,即

      hEadCfHa::hEadCfHahAiJaeIaDjBcBhHgAafHfN

      但还是登不上 ssh

      观察原来的字符串,都是 小写字母+大写字母 为一组,且已知 zA 可以变为 a

      按这个规律的话就是大写字母为小写字母的偏移量,即 z 偏移 A(1) (再取模)得到 a ,这样解出来:

      magna:magnaisanelephant

  • 还没学的缓冲区溢出横向移动:

    ssh 登进去后有个 note ,提示有个二进制文件让看

    错了哥我不会缓冲区溢出

    扔出来看一下,里面有 gets ,那一般是缓冲区溢出了

    r2 打开并显示所有函数,注意到有 sym.call_bash

    这会在设置的用户 id 下新建一个 shell

    二分出来 $72$ 二个 A 恰好导致缓冲区溢出

    再找 call_bash 函数的内存地址:

    readelf -s hacktheworld | grep -i "call_bash"

    转成十六进制并将其放到 A 后面以保留在内存中,然后要用 cat 来保证程序不退出:

    1
    (python -c 'print "A"*72 + "\x58\x06\x40\x00\x00\x00\x00\x00"' ; cat) | ./hacktheworld

  • 提权

    看到计划任务里面有:

    很眼熟的 tar 压缩命令,在 linuxPrivEsc 房间里面刚刚见过

    1
    2
    touch /home/spooky/--checkpoint=1
    touch /home/spooky/--checkpoint-action=exec=shell.sh

    再传个反弹 shell.sh 就行