분류 전체보기

System Hacking Advanced

[dreamhack] Return to Shellcode

checksec└─# checksec r2s[*] '/root/dream/rts/r2s' Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX disabled PIE: PIE enabled RWX: Has RWX segmentsNX 보호기법이 적용되지 않았다. 따라서 쉘코드를 이용한 공격이 가능하다. 문제분석 & 풀이int main() { char buf[0x50]; init(); printf("Address of the buf: %p\n", buf); printf("Distance between buf and $rbp: %ld\n",(char*)__bu..

Web Hacking Advanced

[dreamhack] Mango

문제분석 & 풀이uid와 upw를 전송해서 로그인하는 방식이다. 그대로 요청해보면 guest로 로그인된 것을 확인할 수 있다. 로그인이 성공하면 uid가 출력된다. 목적은 upw를 구해야하므로 blind nosql injection을 수행해야한다고 짐작할 수 있다. const db = mongoose.connection;...app.get('/login', function(req, res) { if(filter(req.query)){ res.send('filter'); return; } const {uid, upw} = req.query; db.collection('user').findOne({ 'uid': uid, 'upw': up..

Mobile

Install Super-Analyzer

About Super-AnalyzerSuper-Aalyzer is a tool that automatically diagnoses and analyzes Android vulnerabilities for apk. https://github.com/SUPERAndroidAnalyzer/super GitHub - SUPERAndroidAnalyzer/super: Secure, Unified, Powerful and Extensible Rust Android AnalyzerSecure, Unified, Powerful and Extensible Rust Android Analyzer - GitHub - SUPERAndroidAnalyzer/super: Secure, Unified, Powerful and Ex..

System Hacking Advanced

[dreamhack] basic_rop_x64

문제분석int main(int argc, char *argv[]) { char buf[0x40] = {}; initialize(); read(0, buf, 0x400); write(1, buf, sizeof(buf)); return 0;}○ 코드 분석buf[0x40] 선언read(0, buf, 0x400)buf에 0x400 크기 입력write(1, buf, sizeof(buf))buf 출력ROP 체인을 구성해서 system("/bin/sh")를 실행하는 것이 목표다. 필자는 풀이 과정에서 __libc_csu_init() 가젯을 활용할 예정이다. __libc_csu_init()에 대해서 공부하고자 해당 개념을 이용한 풀이를 작성했다. ○ JIT-ROP__libc_csu_init(..

Web Hacking Advanced

[dreamhack] blind-command

문제분석 & 풀이@app.route('/' , methods=['GET'])def index(): cmd = request.args.get('cmd', '') if not cmd: return "?cmd=[cmd]" if request.method == 'GET': '' else: os.system(cmd) return cmdcmd 파라미터로 전송하면 os.system(cmd)가 실행되면서 시스템 명령이 실행되는 루틴이다. cmd 파라미터에 대한 검증이 없어서 command injection을 수행할 수 있는 환경이다. 다만, os.system(cmd) 를 실행한 결과를 응답하지 않는다. 따라서 blind command injection을 ..

Web Hacking Advanced

[dreamhack] blind sql injection advanced

문제분석 & 풀이@app.route('/', methods=['GET'])def index(): uid = request.args.get('uid', '') nrows = 0 if uid: cur = mysql.connection.cursor() nrows = cur.execute(f"SELECT * FROM users WHERE uid='{uid}';") return render_template_string(template, uid=uid, nrows=nrows)uid를 이용해서 select 쿼리를 실행하는 구성이다. uid 파라미터에 대한 검증과 prepare statement와 같은 시큐어 함수가 적용되지않았다. 따라서 uid를 이용해 SQL injec..

keyme
'분류 전체보기' 카테고리의 글 목록 (12 Page)