x86 ELF Stack Overflow Jmp Esp (Rsp) Trick

In short: You can find jmp esp (jmp rsp) gadget in almost every dynamic linked ELF binary.

Here's a common _start from a x86 ELF binary:

080488d3 <_start>:
 80488d3:       31 ed                   xor    ebp,ebp
 80488d5:       5e                      pop    esi
 80488d6:       89 e1                   mov    ecx,esp
 80488d8:       83 e4 f0                and    esp …

Continue reading »

QR Code 是如何運作的

今天看到 adr 分享了一張 gif 在解釋 QR Code 運作方式,我覺得很棒所以寫一篇 blog 記錄!

https://media.giphy.com/media/3oz8xEkBBNSsmB61Q4/giphy.gif

Continue reading »

ImageMagick 命令工具

轉換圖片格式:

convert a.bmp b.png

破壞壓縮(範圍 1 ~ 100,越高品質越好檔案越大):

convert a.bmp -quality 50 b.jpg

拼接圖片(水平方向):

convert 1.png 2.png 3.png +append out.png

拼接圖片(垂直方向):

convert 1.png 2.png 3.png -append out.png

製作 GIF:

convert -delay 120 -loop 0 *.png …

Continue reading »

VMProtect 弱保護脫殼小記

最近開始玩某個遊戲的私服,世界各國代理商全倒光之後就有一群人在臺港澳中開了私服,甚至就直接用那個遊戲的名字直接營運.... XD

遊戲主程式有加殼,因為有改過所以沒辦法直接從 section name 或是 exeinfoPE 看出來,後來是 ProtectionId 說他是 VMProtect 2.06(我沒辦法驗證這件事情,基本上他沒開任何 VMProtect 的保護功能)

一開始不知道怎麼脫,x64dbg 配 Win10 的環境也不太好作業,所以就在遊戲跑起來的狀況下 dump memory 然後修 IAT,結果 Win10 因為相容性問題,所以引入了 AcLayers.dll / apphelp.dll ,並且在 PE loader 內去 hook EAT,結果就會讓 Scylla 壞掉

screenshot screenshot

脫殼請在該應用程式支援的最低作業系統版本下進行 XD …

Continue reading »

SSH tunnel 筆記

SSH Tunnel 有三種工作模式,使用 ssh tunnnel 的好處有:

  • 在可能被監聽的網路環境保護未加密連線的安全
  • 翻牆
  • 一定程度上取代 VPN,是一個比較 light-weight 的解決方案

先定義兩個名詞:

  • local: ssh client
  • remote: ssh server

在 local listen port A,透過 remote forward 到 host B 的 port C

ssh [email protected] -L [local_bind_address:]local_port_A:host_B:remote_port_C

example:

ssh [email protected] -L …

Continue reading »

花了兩個小時幫 bottle.py 修了一個 bug

真的很賭爛因為別人的 code 有 bug 讓自己花了超久的時間 debug

最近在寫一個 CTF 訓練平台,架構上採用 peewee + bottle.py 進行開發,因為不想花太多時間去學 Django 這種太龐大的架構(加上有些用法自己不見得喜歡),所以打算自幹整個架構

遇到了一個問題是我需要自訂 view 的路徑,翻了一下 code 之後發現我有 template_lookup 這個 keyword argument 可以用,但是不管怎麼嘗試,就是沒辦法讓 bottle.py 去我指定的 path 找 template file,不知道是不是我對 decorator 有誤解,改了老半天,後來又 trace 了一下 bottle.py 的 code …

Continue reading »

CTF介紹

一般人聽到 CTF 可能會有的反應大概就幾種:「那是什麼?」、「駭客的遊戲?聽起來好可怕」、「蛤?」,加上一個人打 CTF 太孤單,所以來寫這篇文章,向大家介紹 CTF!

所以 CTF 到底是殺小?

Capture The Flag,駭客的搶旗遊戲,Flag 通常就是一串文字,或是要達成指定的目標。

至於這個 Flag 要怎麼拿呢?基本上主辦方會架設一些有漏洞的服務系統,或者是含有漏洞的程式,又或者是把資訊隱藏在檔案裡面,挑戰者要想辦法用駭客攻擊的手法入侵系統,或者想辦法找出或解密藏在檔案或程式內隱藏的 Flag

CTF 的賽制

基本上可以分成四種:

  • Jeopardy
  • Attack & Defense
  • King of Hill
  • CGC

Jeopardy

AIS3 Final

Jeopardy 會有多道題目可以解,題目常見類型如下:

misc

綜合題,什麼都有可能,雜七雜八無法分類通常就會算成這個 …

Continue reading »

Cleanest way to host static files using nodejs

Use built-in http module and ecstatic for middleware.

First, install ecstatic

npm install ecstatic

And the magic!

var http = require('http'),
    ecstatic = require('ecstatic');

http.createServer(ecstatic({root:'./'}))
    .listen(8080, '127.0.0.1');

Continue reading »

某網站小遊戲加密弱點分析

某網站小遊戲加密弱點分析

故事是這樣的,某~~(N)~~大~~(T)~~學~~(U)~~的某系之夜弄了一個網站,上面有幾個 JS + canvas 寫的小遊戲,看到小遊戲我怎麼能夠放過不玩~~(弄)~~呢?

先來看看原始 Code

function Encode_orig(t, n) {
    var i = 'abcdefghijklmnopqrstuvwxyz0123456789{:}"[email protected]$%,&*()_+ABCDEFGHIJKLMNOPQRSTUVWXYZ?',
        o = {},
        e = i.length;
    n %= e, 0 == n && (n = 2);
    for (var r = 0; e > r; r++) o[i[r]] = r;
    for (var …

Continue reading »

SQL Injection 是怎麼發生的

SQL Injection 是怎麼發生的?

這篇文章原本是要寫給學校的老師看的,覺得可以拿來資安科普所以就貼到 Blog 吧!

首先,考慮以下 PHP 程式碼

<?php
function login($user, $pass) {
    $sql = "SELECT * FROM `users` WHERE `name` = '$user' AND `password` = SHA1('$pass')";
    $user = query($sql);
    if (count($user) > 0)
        return $user[0];
    else
        return false;
}

$user = login($_POST['user'], $_POST['pass']);
if ($user !== false)
    echo …

Continue reading »

網管的田野調查之誰在踹我的Server

身為一個網管,平常的好(ㄜˋ)習(ㄑㄩˋ)慣(ㄨㄟˋ)之一就是看Log 定期看看你的 server 最近又被誰踹了、有哪些攻擊的痕跡、有誰跟你 Say Hello (?

HTTP Access Log

User-Agent

$ log-cat.py "{8}" school-access.log | sort | uniq -c | sort -nr | head -n 16
  56428 -
   2716 Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu …

Continue reading »

Garena 被駭事件,身為玩家的你該知道的事

Garena 被駭事件玩家事後處理建議

發生了什麼事?

Garena 遊戲公司遭到惡意入侵,旗下兩款遊戲「Path of Exile 流亡黯道」以及「League of Legends 英雄聯盟」安裝程式被植入惡意程式(PlugX

是誰幹的?

據目前了解,一個被命名為 Winnti Group 的組織所為,他們在過去曾經攻擊上百個遊戲公司,竊取遊戲原始碼、在遊戲檔案植入惡意程式、竊取使用者密碼等行為

我是不是受害者?

過去四個月內(2014年九月 ~ 2014年十二月)曾經下載並安裝「Path of Exile 流亡黯道」以及「League of Legends 英雄聯盟」者,您很有可能是受害者

此外,您可以檢查電腦是否存在以下兩個檔案,若有出現,您極為有可能是受害者

C:\Windows\System32 …

Continue reading »

WebGoat installing instruction under Ubuntu

WebGoat installing instruction

you can run this tutorial under any debian family distro but not other platform

  1. sudo apt-get install tomcat7 tomcat7-admin
  2. sudoedit /etc/tomcat7/tomcat-users.xml
  3. edit tomcat-users.xml like below
  4. sudo service tomcat7 force-reload
  5. open http://your-server.net:8080/manager/html and upload your war file
  6. open http …

Continue reading »

ht editor 編譯筆記

最近發現有 ht editor ,於是想下載編譯來用 無奈奮鬥了半小時還是搞不定,差點就放棄直接載 sourceforge 上的 binary 來用,所幸最後還是搞定了

# if you are not use debian family, install dependency on your own
sudo apt-get install autoconf automake libncurses-dev texinfo byacc flex
git clone --depth 1 https://github.com/sebastianbiallas/ht.git
cd ht
./autogen.sh
./configure
make
make htdoc …

Continue reading »

把M$ Excel的Sheets切成不同檔案

今天被問了奇怪的問題,覺得有價值筆記下來,VBA不解釋

Sub Main()
    If MsgBox("Hi, Split sheets to files?", vbYesNo) = vbNo Then Exit Sub
    Dim xPath As String
    xPath = Application.ActiveWorkbook.Path
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For Each xWs In ThisWorkbook.Sheets
        xWs.Copy
        Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & xWs.Name & ".xls"
        Application.ActiveWorkbook.Close …

Continue reading »