Skip to content

Instantly share code, notes, and snippets.

View a-r-g-v's full-sized avatar
🏠
Working from home

Yuki Mukasa ( a_r_g_v ) a-r-g-v

🏠
Working from home
View GitHub Profile

Your First Format String Attacks.

1. What's the `Format String Bugs'?

 Format String Bugs(以降, FSBとする)とは, sprintf()fprintf()などのprintf関数群やsyslog()などのFormat Strings(以降, 書式指定子とする)を扱える関数において, ユーザが自由に書式指定子を配置できるバグである. これを利用した攻撃手法をFormat String Attacksと呼び, この攻撃によりターゲットとなるプロセスがアクセス可能な任意のメモリの読み書きが行えるようになる. また, それを利用しプログラムの制御を乗っ取ることも可能である.
 実際のプログラムに多く存在するとは到底言えないような脆弱性ではあるが稀に見つかることはある. CVE-2012-0809[1]ではsudoのデバッグ機能にFSBが見つかり, 実際にlocal exploitが公開されたりもした. 前述の通り珍しいものではあるが, 任意のメモリの書き換えができるなど非常に強力なものであることからCTFではよく題材にされる.
 この記事ではFSBの検証に以下の環境を使用した.

sh-4.3$ uname -a
Linux Arch_Laptop 4.0.4-1-ARCH #1 SMP PREEMPT Mon May 18 06:43:19 CEST 2015 x86_64 GNU/Linux

1.

mainメソッドで "Hello World"の文字列を出力せよ。(JavaのHello Worldの比較して、なぜそのようなコードになるか考察せよ。)

2.

何らかのフィールドを持つクラスを用意しprintせよ。 自然な形のprintにせよ(Object IDだけを出力しないように)。

3.

1100を配列を用意し、それぞれの値に0100までの乱数を足す。そのうち偶数のみを残すようなコードを書け。 java.util.Randomを使用しても良い。

@voluntas
voluntas / mqtt.rst
Last active February 15, 2025 04:35
MQTT とはなんだったのか

MQTT とはなんだったのか

更新:2017-05-09
作者:@voluntas
バージョン:3.14
URL:http://voluntas.github.io/

MQTT をググって調べた人向け

@CodeBrauer
CodeBrauer / kf2-server-start.sh
Created May 1, 2015 14:17
kf2 server run script for linux/wine
#!/bin/bash
SCREEN_NAME="kf2-server"
MAP="kf-bioticslab"
DIFFICULTY=10
ADMINNAME=gabriel
ADMINPASSWORD=XXXXXXXX
PORT=7777
#####################################################
@mizchi
mizchi / フロントエンドを楽にするために.md
Last active September 23, 2024 05:05
フロントエンドを楽にするために

フロントエンドを楽にするために

Qiitaを支えたい技術 at 時雨祭

About

  • HN: mizchi
  • Qiitaの方からきました(入社半年たったらしい)
  • Reactオジサンはそろそろ飽きてきた
  • Angularに興味が無いのでこっちにきた
@shrayasr
shrayasr / bulk-insert-sa.md
Last active December 11, 2020 16:04
Bulk Inserts via SQLAlchemy and Flask-SQLAlchemy

Bulk Inserts via SQLAlchemy and Flask-SQLAlchemy

Problem

I ran into an issue today where I had to perform a bulk insert into a postgres DB. I was already using SQLAlchemy and Flask-SQLAlchemy to manage the connections to the db and I didn't want to have to use things like psycopg2 directly.

Solution

Note: SQLAlchemy provides an ORM. It isn't just an ORM. That is an important thing to be kept in mind. This means that you can bypass choose to not use the ORM layer when you don't want it. The idea with an ORM is to track changes to objects and when you have a case like that is when you'd use the ORM. In a bulk upload scenario, you don't need to track changes to objects. All you care is that everything be pushed into the DB.

@voluntas
voluntas / pypy.rst
Last active April 8, 2019 05:06
PyPy コトハジメ
@hhc0null
hhc0null / day17.py
Last active August 29, 2015 14:12
ADCTF2014 Writeups(pwnable only)
#!/usr/bin/env python2
from pwning import *
import sys
if len(sys.argv) != 2:
print "Usage: {} [align]".format(sys.argv[0])
rhp = ("pwnable.katsudon.org", 32100)
#rhp = ("localhost", 32100)
@mrtc0
mrtc0 / issue-1397-peda.md
Last active August 29, 2015 14:11
すごい広島#82-issue#1397.md

すごい広島 #82

issue #1397

PEDAを使ってみた

DEP,SSP,ASLR無効の状態でsuidなvulnで試した.
最終的にsecret.txtを読み出すことをゴールとした.

@uupaa
uupaa / fp.now.md
Last active May 25, 2022 11:58
いまどきのガラケー事情

いまどきのガラケーと Flash Lite 開発事情

いまどきのガラケーコーディングがどうなっているか確認してみました。

ガラケーを取り巻く環境の変化

  • 停波による古い端末の一掃
    • docomo
      • 2006春モデル以前の端末が mova の停波により 2012/03/31 から利用不能に
  • au