[LOS] Level18: xavis 포스팅 썸네일 이미지

War Games/Lord of SQLInjection

[LOS] Level18: xavis

Lord Of SQLInjection: lv.18 xavis xavis입니다. pw로 prob | _ | . | () | regex | like 사용을 못하게 하였고, pw를 찾아야하네요. 이 문제는 regex와 like를 못쓰게 하였는데, 우리는 원래 substr을 사용하므로 상관없습니다. import httplib headers= {'Content-Type':'application/x-www-form-urlencoded', 'Cookie':'PHPSESSID=bqm5el8gbhaa4o89h7h458i5sd'} conn= httplib.HTTPSConnection('los.rubiya.kr', 443) pw='' for i in range(1, 10): for j in range(32, 128): co..

2020.01.16 게시됨

[LOS] Level17: nightmare 포스팅 썸네일 이미지

War Games/Lord of SQLInjection

[LOS] Level17: nightmare

Lord Of SQLInjection: lv.17 nightmare nightmare입니다. 보면 prob | _ | . | () | # | - | 를 막아놓았네요. 즉 주석문 #을 못쓰는건데, sql에는 다양한 방법의 주석문이있습니다. # | -- | ;%00 정도가 있는데, #와 --는 막혔으니, ;%00을 통해 풀어줍시다. 아, 한가지 더 봐줄 게 있는데, pw=('') 부분입니다. 일단 저 구문 자체는 0일것입니다. (당연히 pw는 어떤값이든 있을테니) 따라서 저 구문이 0이라고 해주면 전체 쿼리는 참이 되겠죠. 이를 이용해서 풀어줍시다. https://los.rubiya.kr/chall/nightmare_be1285a95aa20e8fa154cb977c37fee5.php?pw=%27)=0;%00 굳

2020.01.15 게시됨

[LOS] Level16: zombie_assassin 포스팅 썸네일 이미지

War Games/Lord of SQLInjection

[LOS] Level16: zombie_assassin

Lord Of SQLInjection: lv.16 zombie_assassin zombie_assassin입니다. preg_match로는 prob | _ | . | () | 를 거르네요. 근데 못보던게 생겼네요. strrev(addslashes($_GET['id']))부분인데, strrev는 딱봐도 string reverse함수같이 보이고, addslashes는 뭔가 \를 덧붙일 것 같은 함수네요. strrev함수는 asdf을 입력하면 fdsa로 문자열을 바꾸고, addslashes는 특수문자앞에 \를 붙여 문자열이 특수문자로 쓰이는 걸 방지하는 함수입니다. 쉽게말해서 싱글쿼리와 더불어 특수문자들을 악용할 수 없는 것이죠. 따라서 succubus를 푼 방식과 비슷하게 풀어주면 됩니다. addslashes..

2020.01.14 게시됨

[LOS] Level15: succubus 포스팅 썸네일 이미지

War Games/Lord of SQLInjection

[LOS] Level15: succubus

Lord Of SQLInjection: lv.15 succubus succubus입니다. 이 문제는 둘다 싱글쿼리를 막고있고, id의 값만 있으면 풀립니다. 평소같이 sql injection을 하면 되겠지만, 싱글쿼리를 어떻게 해결해주면 좋을까요? preg_match문을 주의깊게 봅시다. if(preg_match('/\'/',$_GET[id])) exit("HeHe"); 보면 싱글쿼리 앞에 \가 붙어있죠? (코드블럭 안에 들어있어서 / 좌우돌림한것처럼 보이네요) \는 많은 언어 안에서 "문자열 자체"로 인식되게끔 합니다. 그냥 싱글쿼리를 넣으면 이게 문자열 작은따옴표로 쓰고싶었는지, 쿼리를 나눠주는 싱글쿼리인지 구분하지 못하기 때문에 \를 앞에 입력하면 뒤에 있는 싱글쿼리를 문자열로 인식합니다. 이를 이..

2020.01.13 게시됨

[LOS] Level14: assassin 포스팅 썸네일 이미지

War Games/Lord of SQLInjection

[LOS] Level14: assassin

Lord Of SQLInjection: lv.14 assassin assassin입니다. 보면 싱글쿼리가 걸러지고 있네요. 이걸보고 싱글쿼리를 우회할 방법을 찾고 있었는데, 결국 찾지 못했습니다... 그래서 = 대신 쓰인 like를 보았습니다. 보아하니 like의 옵션 중 %와 _가 있더라구요(정확하게는 와일드카드라고 합니다) %는 해당하는 문자열이 포함된 모든 db중 첫 번째 db를 출력해주고, (linux의 *과 느낌 비슷함) _는 해당하는 문자열이 정확히 포함된 db를 출력해줍니다. 글로는 알기 힘드니 예시로 봅시다. A% : 'A'로 시작하는 모든 문자열 %A% : 'A'가 포함된 모든 문자열 _A% : 두 번째 문자가 'A'인 모든 문자열 참고로 와일드카드중에 [](범위 정해주는거)도 있던데 왠..

2020.01.12 게시됨

[LOS] Level12: bugbear 포스팅 썸네일 이미지

카테고리 없음

[LOS] Level12: bugbear

Lord Of SQLInjection: lv.12 bugbear bugbear입니다. 비슷한거 같은데 preg_match가 더 추가되었네요. pw에는 싱글쿼리, no에는 probl_ | . | () | ' | substr | ascii | = | or | and | (스페이스)| like | 0x 가 포함이 되면 안되네요. 1. (스페이스) : %09, %0a, %0b, %0c, %d로 우회(개행문자 hex값임) 2. substr : mid함수 3. = : in함수 4. or, and : ||, &&(%26%26) 5. ascii : ord함수 https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php?no=1%0e||%0aid%0a..

2020.01.10 게시됨

[LOS] Level11: darkknight 포스팅 썸네일 이미지

War Games/Lord of SQLInjection

[LOS] Level11: darkknight

Lord Of SQLInjection: lv.11 darkknight darkknight입니다. no변수에는 싱글쿼리, substr, ascii, =를 못쓰고 pw에는 싱글쿼리만 못쓰네요. 그리고 문제 풀이조건은 pw를 찾아내야하네요. pw를 찾을 때 substr >> mid ascii >> ord = >> in 함수들을 각각 이용해주면 되겠습니다. 일단 Hello admin까지는 성공했네요. 이제 pw를 알아내야 하는데, 이건 우리가 해왔던대로 쭉 하면 됩니다. 이렇게 하니 문제없이 blind sql을 할 수 있네요. 대신 python코드를 짤때는 in('+str(j)+') 이런식으로 해야겠죠? import httplib headers= {'Content-Type':'application/x-www-f..

2020.01.09 게시됨

[LOS] Level10: golem 포스팅 썸네일 이미지

War Games/Lord of SQLInjection

[LOS] Level10: golem

Lord Of SQLInjection: lv.10 golem golem입니다. or, and, substr, =을 사용하지 않고 pw를 알아내야하네요. 일단 or와 and는 앞의 문제에서도 그랬듯이 || 와 &&를 이용하면 되고(&&는 %26%26으로 입력해주는것 잊지맙시다.) substr은 ascii와 mid함수를 이용합시다. ascii함수는 문자를 ascii코드로 바꾸어주고, mid함수는 mid("편집할 텍스트", 추출을 시작할 위치(1부터시작), 추출할 텍스트 수) 와 같이 이용합니다. 마지막으로 =은 in함수를 이용하면 됩니다. 예를들어, id='admin'대신 id in ('admin')으로 이용해주시면 됩니다. 일단 hello admin까지는 출력시켰네요. 이걸가지고 python코드도 만들어보..

2020.01.08 게시됨

[WhiteHat Grand Prix 06-Quals] Session관련 문제 포스팅 썸네일 이미지

CTF

[WhiteHat Grand Prix 06-Quals] Session관련 문제

사실 그냥 과외들으면서 한거라 정확히 무슨문제인지 모른다! LFI가 터진다는걸 알 수 있다. 보아하니 그냥 있을 수 밖에 없는 페이지를 연 것 같다. 그래서 게싱으로 passwd파일을 열어보았다. 이제 session에 대해서 알아보도록 하자. 보통의 웹사이트라면 start_session() 함수가 포함되어 있을 것이다. 그 안에 $res[id]가 존재할 것이고, 그 id에 대한 정보는 $_SESSION['id']=$res['id']; id = (내가 입력한 id값) 처럼 입력이 될 것이다. 그럼 id에 를 입력하게 되면 어떻게 될까? /var/lib/php/sessions/sess_(쿠키값)의 디렉토리에 Id|s:n:" 가 들어가게 되는거고,각각 변수의 뜻은 s : datatype(string) n : ..

2020.01.05 게시됨