티스토리

NULL 잡아먹는 놈
검색하기

블로그 홈

NULL 잡아먹는 놈

34t3rnull.tistory.com/m

보안 & 개발 블로그

구독자
1
방명록 방문하기

주요 글 목록

  • [Lord Of SQL injection] Xavis 풀이 HINT : 1. 단순한 Blind SQL injection 문제이다.2. regex, like 대신 쓸만한게 없을까? 이번 문제는 제일 싫어하는 blind sql injection 문제이다.regex, like에 필터링이 걸려있는데 어짜피 substr이랑 hex를 쓰면 우회할 수 있다.일단 길이를 구해보자.나는 hex(pw)로 분석을 할 것이니 hex(pw)의 길이를 구해보도록 한다. 80에서 Hello guest로 바뀐 것을 보아 80이 admin의 패스워드임을 알 수 있었다.그 다음은 admin의 pw를 구하기 위해 쿼리를 보내준 것이다.일단 쿼리의 형식이 pw=0' or substr(hex(pw),1,n)='~~~~형식이니 이 형식에 맞춰서 파이썬 파일을 짜보았다. (제일 밑에 첨부) 일단 처음에.. 공감수 0 댓글수 0 2017. 4. 7.
  • [Lord Of SQL injection] Nightmare 풀이 HINT : 1. 어랏? 필터링에서 빼먹은 주석이?2. 문자열은 0이랑 동일 취급이라며? 문제는 위와 같다. 이번에는 길이 제약 + 주석 필터링이 걸려있다.이번에도 그냥 id값만 나오게 하면 된다.일단 주석의 종류를 살펴보자면#, -- , ;%00 , /**/ 이 있다.일단 필터링 되어있는 #과 --를 제한 주석들이 가능한지 시험해보았다. 일단 ;%00과 /**/은 쓸 수 있는 것으로 판명났다.근데 pw값의 길이가 최대 6인 것을 보아 길이가 4인 /**/보다는 길이가 2인 ;%00를 쓰기로 했다.그 다음은 문자열||1을 이용해서 풀려고 했었다.그러기 위해선 ')||1;%00을 생각했었다. ??? 쿼리를 넣고 보니 No Hack이 뜨는 것을 볼 수 있었다.')||1;%00은 길이가 7이기 때문인 것이었다.. 공감수 0 댓글수 0 2017. 4. 7.
  • [Lord Of SQL injection] Succubus 풀이 HINT : \은 싱글쿼터를 문자열 취급으로 바꿔준대~ 이번 문제는 앞 전 문제인 zombie_assassin의 내용을 preg_match로 바꾼 문제다.처음 풀 때는 preg_match가 무적이라서 안 풀릴줄 알았고, 좌절했었다.관련 문서를 다 뒤져봤는데 char, hex를 쓰라고 하는데 아마 안 먹히는 것 같다.그래서 백슬래시를 이용하라는 문서를 토대로 공격을 진행했고, 성공했다. 일단 백슬래시가 필터링 되지 않는 것을 확인할 수 있는데 그것을 이용해서 공격해보자. 아무 오류가 안 뜨는 것을 볼 수 있다.먼저 풀이를 하고 설명을 하도록 하겠다.일단 백슬래시를 이용해서 페이로드를 작성했고, 위와 같이 클리어했다. 설명 : \를 이용해서 '를 문자열 취급해준다면select id from pob_succu.. 공감수 0 댓글수 0 2017. 4. 7.
  • [Lord Of SQL injection] Zombie_assassin 풀이 HINT : @ereg는 취약점이 있다죠?? 이번 문제는 필터링 우회 문제 같다.어짜피 preg_match에 있는 것은 풀기 위해서 쓸 필요가 없으니, ereg를 우회해주기로 했다.ereg는 C에서 문자열 함수와 비슷하게 NULL문자를 만나기 전까지 동작한다고 한다.그러니깐 '%00을 하면은 ereg 범위에 들어가지만 %00'을 하면 ereg 범위 바깥이라는 뜻이다.한 번 우회가 되는지 확인해볼까? 깔쌈지게 우회가 된다. 이제 싱글 쿼터를 사용할 수 있으니 그냥 ||1만 해주면 끝날듯 하다. 클리어!!! 공감수 0 댓글수 0 2017. 4. 7.
  • [Lord Of SQL injection] Assassin 풀이 HINT : 발상의 전환이 필요하다. 문제는 다음과 같다.근데 이상한게 싱글쿼터를 우회하지 못하게 preg_match로 막아놨다.eregi면은 우회할 수 있는데 쩝....그렇다면 like 안의 구문으로 끝내야 된다고 생각했다.그래서 아스키 코드 값 다 넣어보았는데, 아무래도 Hello admin이란 단어는 안 떴었다.그래서 발상의 전환을 통해 Hello admin보다 Hello guest가 먼저 나와서 가리는게 아닐까?라는의구심이 들어서 그대로 쭉 해보았다. Hello guest 득템 득템 2!! 싱겁게 3글자에서 끝났다. 832%에서 Hello admin이 뜬 것을 보니 아마도832~~~가 답인 것 같은데 그것을 찾긴 귀찮으므로 pass~ 암튼 CLEAR!!! 공감수 0 댓글수 2 2017. 3. 21.
  • [Lord Of SQL injection] Giant 풀이 HINT :1. 길이가 1을 넘지 말아야한다 -> 과연 무엇이 필요할까?2. 필터링이 아직 부족하다. 이번 문제는 다음에 제약조건이 있다. 1. 길이를 1을 넘으면 ㄴㄴ2. %20, %0A, %0D, %09가 필터링 되어있다. 이 두 조건인데, 1과 2를 조합해보면 대충 한 칸을 차지하는 공백 문자를 써야함을 알 수 있다.%20을 대신할 수 있는 문자가 무엇이 있을까??궁금하면 웹 해킹 기초 꿀팁 보도록!.......... 암튼 %20을 대신할 수 있는 것은 %0A, %0B, %0C, %0D, %09가 있으니나머지 2개를 아무거나 써주면 끝~ 이렇게나 이렇게 써주면?? CLEAR!!!! 공감수 0 댓글수 0 2017. 3. 21.
  • [Lord Of SQL injection] Bugbear 풀이 HINT : 1. 필터링이 겁나 많으니 우회를 먼저 생각해야하겠는걸??2. no에는 싱글쿼터 처리가 안 되어 있다. 아.... 정말 귀찮은 문제다.... hex면은 2배로 귀찮아지기 때문 (어짜피 홀 수 번째는 3 or 6이지만 ㅎ)정말 정말 혼또 귀찮았던 문제다... (물론 내 풀이 기준 더 쉽게 풀수도 있을지도?)일단 우회하는 목록이싱글 쿼터 -> 더블 쿼터or -> ||스페이스바 -> %09, %0a ~ %0d, /**/LIKE, 문자열 비교 -> hex와 % 및 를 이용로 우회를 하려고 한다. (뒤에 모든 사진에는 %20 대신 %09를 썼습니다. URL이 안 보여도 유의그리고 hex() 옆에 위치한 %는 URL에서 쓰려먼 %25를 써야한다.) 일단 길이를 알아보자!일반 문자열 기준으로 8임을 알 .. 공감수 0 댓글수 0 2017. 3. 12.
  • [Lord Of SQL injection] Darkknight 풀이 HINT : 1. 필터링된 것이 좀 많네. 대체할 것을 생각해보자!2. no에는 싱글쿼터 처리가 없네 ㅎㅎ? 그렇다... 제일 귀찮은 Blind SQL injection 문제이다.필터링되는 항목을 살펴보면 자주 사용하는 싱글쿼터(')와 =이 필터링되었는데일단 싱글쿼터(')는 더블쿼터(")로 대체되고, =은 부등호나 LIKE 연산자로 대체할 수 있다.싱글쿼터가 필터링 되었으니 우리는 pw 말고 no를 이용하여 sql injection 쿼리를 생각해보자!일단 길이를 알아보자! 일단 길이는 8임을 알 수 있다. (맨날 8이라 이젠 8부터 확인함 ㅋㅋ)이제 맨날 하던대로 blind sql injection을 시행해보면 pw 값이 '1c62ba6f' 임을 알 수 있다.별로 어렵지 않은 문제이다.2번째 $query.. 공감수 0 댓글수 0 2017. 3. 11.
  • [Lord Of SQL injection] Golem 풀이 HINT : 필터링 우회를 하면 끝~ 이번 문제는 이렇다! 그냥 blind SQL injection 문제인데 다만 or, and, substr(, =이 필터링 되는 것이 다르다.그럼 or은 ||로 필터링 해주고, 어짜피 substr( 대신 LIKE를 써주어서 풀어보면 될 것 같다.(물론 substring을 쓸 수 있긴 하지만 = 때문에 LIKE를 또 써야하기 때문에 그냥 LIKE만 쓰도록 하겠다.)=은 LIKE로 대체하거나 아니면 부등호 연산자를 사용해서 풀어도 되겠다.먼저 길이를 알아보자! 길이는 8임을 알 수 있다.이제 생김새를 알아볼까? blind SQL injection을 하다보니 pw의 값은 88e3137f임을 알 수 있다.이것을 대입하면? .......... 클리어!---------------.. 공감수 0 댓글수 0 2017. 3. 11.
  • [Lord Of SQL injection] Skeleton 풀이 HINT : 1. 연산자 우선순위 2. 1=0은 무조건 거짓이다. 없애자! 문제는 이렇다. 필터링 되는 것 별 것 없고, 그냥 아무런 이상 없는 문제다.다만 마음에 걸리는 점은 1=0은 무조건 거짓이고, 어떻게 쿼리를 써야할 지 막막하다는 것이다.그래서 우리가 이용할 것은 연산자 우선순위와 주석이다.연산자 우선순위 적으로 and가 or보다 빠르고, 주석으로 1=0을 없애는 것이 이 문제의 핵심이다.select id from prob_skeleton where id='guest' and pw='0' or id='admin' and pw>'0'# and 1=0과 같은 쿼리를 만들어서 앞에 빨간 부분이 아닌 뒤 파란 부분의 조건이 검색되도록 url을 보내면 되겠다.어떻게? 이렇게 ㅎ 클리어! 공감수 0 댓글수 0 2017. 3. 10.
  • [Lord Of SQL injection] Vampire 풀이 HINT : 1. PHP는 대소문자를 구별 못한대요~ 얼레리 꼴레리2. 필터링을 역이용 해볼까 ㅎㅎ? 이번 문제는 풀이가 2가지가 있을 수 있다.물론 힌트별로 1개씩 ㅎㅎ필터링은 별 것 없고, 그냥 str_replace를 해준다는 것이다.하지만 여기서 알아야 할 1가지!! str_replace는 대, 소문자를 구별한다! 는 것이다.결국 admin이랑 ADMIN은 다른 것으로 인식하기 때문에... 요로코롬 써주면? 클리어! 하지만 다른 풀이도 있다.str_replace("admin","",$_GET[id])는 'admin'이란 패턴은 빈 칸으로 만든다는 것이다.만약 'adadminmin'이란 것을 입력해준다면가운데 admin은 사라지게 될 것이고 결국 우리는 admin이란 것을 입력한 것과 똑같이 된다.아.. 공감수 0 댓글수 0 2017. 3. 10.
  • [Lord Of SQL injection] Troll 풀이 HINT : php는 대소문자를 구별 못한대요~~ 얼레리꼴레리 문제는 이렇다. ereg는 정규표현 패턴과 일치하면 참을 내뱉는 함수이다.그말은 즉슨 'admin'(소문자)이랑 id가 일치하면 안 된다는 건데....$result['id'] == 'admin' 이어야 되고 ㅠㅠ.... 못 푸는 건가?포기하자..............는 구라고, ereg에 있는 admin은 소문자라서 대문자를 삽입하는 것은 가능하다.물론 변태들은 섞어서도 넣고 싶어하겠지 ㅎ암튼 admin 대신 ADMIN으로 대신하면$query에서 ADMIN을 입력했지만 바보인 php는 admin으로 보내게 될 것이고,$result['id']의 값은 admin으로 오게 될 것이다. 그럼 우리가 해야할 것은?id=ADMIN을 입력하자! 그 다음은.. 공감수 0 댓글수 0 2017. 3. 10.
  • [Lord Of SQL injection] Orge 풀이 HINT : 1. Blind SQL injection은 기본...2. or은 필터링 우회가 쉽죠?? 이번 문제는 ~~~~ or, and의 필터링을 피하면서 blind SQL injection을 시행하는 것입니다!여러분들은 or의 우회는 || and의 우회는 &&인 걸 아시겠죠??? (&&은 URL 창에서 안 먹히므로 안 쓰도록 하겠습니다.)아아!! 귀찮은 문제여라~~~ 한 번 길이를 알아볼까요?첫 구문은 pw의 길이부터 재보죠. ?pw=0' || LENGTH(pw)='0 을 시작으로 쭉쭉 입력하다보면 아아~~ 길이는 8이다~~~ 이제 길이 8 동안 blind SQL injection을 합시다.LIKE가 필터링 안 됐으니 LIKE 써도 되고, substr도 써도 되고, RIGHT랑 LEFT도 섞어 써도 되.. 공감수 0 댓글수 0 2017. 3. 9.
  • [Lord Of SQL injection] Darkelf 풀이 HINT : 흠... or 말고 또 없나? 하..... 벤쯔 먹방 보면서 글 쓰고 있는데 족발, 보쌈 개땡김... 암튼 시작하겠습니다. 문제는 이렇다. or, and 가 필터링 되는데, 이거 우회는 쉽잖아요 ㅋㅋ || 이나 && 다들 아시죠? 그럼 쉽게 풀 수 있음guest 부분을 거짓 처리하고 id가 admin인 레이블을 나오도록 쿼리를 바꾸면 끝~쿼리문의 생김새는 대충select id from prob_darkelf where id='guest' and pw='0' or id='admin'인데or부분을 우회하기 위해 ||로 바꿔줍니다. 즉 위와 같이 쿼리문을 바꿔준다면? 꿀려~ 공감수 0 댓글수 0 2017. 3. 7.
  • [Lord Of SQL injection] Wolfman 풀이 힌트 : 1.우리가 원하는 것은 guest가 아니라 admin이야!2.스페이스바를 꼭 써야해?? 필터링 따윈 우회하면 되잖어 이번 문제는 스페이스바가 필터링 되어 있다. 뭐 스페이스바 따윈 creturn(%0D), tap(%09), linefeed(%0A)로 우회하면 끝나니깐 결국 필요한 것은id가 'admin'인 레이블을 뽑아내는 것이다.흠.... guest의 값은 거짓으로 만들면서 id='admin'과 pw의 값을 얻어줘야하니 이렇게 바꿔주었다. 쿼리는 select id from prob_wolfman where id='guest' and pw='0' or id='admin' and pw>'0'과 같이 된다.즉 연산자 순위가 빠른 and 후 or 연산이 시작되니 우리는 admin의 레이블을 얻을 수 .. 공감수 0 댓글수 0 2017. 3. 7.
  • [Lord Of SQL injection] Orc 풀이 힌트 : BLIND SQL INJECTION 입니다!...이건 어려워서 ㄷㄷ... 힌트는 LIKE 입니다. 더 편하게 하실려면 LENGTH 도 힌트 ㅋ 문제는 이렇네요 ㅋㅋ 마지막에 입력한 pw와 db상의 pw가 일치해야지만 풀리는 것을 보아하니그냥 sql 인젝션이 아닌 블라인드 sql 인젝션이네요,블라인드 sql 인젝션 중에서는 쉬운 편인데,, 설명하기가 어렵네요 (저도 처음엔 어려웠음 ㄷㄷ..)이 문제는 블라인드 sql 인젝션이란 기법을 알아야 풀 수 있어요.쉽게 설명하자면 TRUE or FALSE를 이용해서 내가 원하는 값을 도출해내는 것인데요.이 문제의 경우 TRUE면 Hello admin이라는 문구가 출력되네요 ㅎㅎ맛보기로 admin의 pw의 길이를 구해볼까요?물론 0부터 시작해서 차근차근 넣어.. 공감수 0 댓글수 0 2017. 3. 6.
  • [Lord Of SQL injection] Goblin 풀이 힌트 : 1. 비밀번호를 바로 맞출 수는 없으니깐 범위로 때려 맞춰 보자!2.guest랑 admin의 no 값은 다르겠지?? 하핫! 풀이를 보게 된 당신 부끄럽지 않나?? 하핫 물론 풀이 진행하겠습니다.$query = "select id from prob_goblin where id='guest' and no={$_GET[no]}";가 쿼리문이다.흠... id='guest' and no=~~~가 거슬리는데 짜피 'or' 써주면 무시될 수 있다.여기서 중요한 것은 no를 조작하여서 'id = guest and no = 거짓식 or 참식' 과 같은 꼴을 만드는 것이다.그러면 결과적으로 참식을 이용해서 admin의 id를 도출시킬 수 있을 것이다.그럼 어떻게 no를 보내야 할까? 다음과 같이 보낼 수 있는데 .. 공감수 0 댓글수 0 2017. 3. 6.
  • [Lord Of SQL injection] Cobolt 풀이 힌트 : md5?? 그게 뭐야?? 먹는 거야?? 무시해버려 그냥 ㅋㅋ 어허.... md5?? 이거 계산할 거에요?? 여러분?? 이거 언제하고 앉아있어 ㅋㅋ $query = "select id from porb_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')"; 이고,solve 조건이 id=admin이니깐 그냥 id = admin주고 pw는 어짜피 0보다 크거나 같거나 작을테니조건문 몇 개 써주면 끝 아니겠습니까? 근데 pw에 md5가 걸렸네... 그래도 ㄱㅊㄱㅊ우리에겐 최후의 카드 '주석'이 있잖아요 ㅋㅋid에서 pw까지 다뤄주고 뒷 pw부분은 주석처리 해주면 되겠지 뭐 ㅋㅋ 어떻게?? 요롷겧ㅎㅎㅎㅎㅎㅎ Ang~ CLEAR띠~ 공감수 0 댓글수 0 2017. 3. 2.
  • [Lord Of SQL injection] Gremlin 풀이 힌트 : 참을 만들어 주면 됩니다. 이것도 못 만들면 다시 공부 ㄱㄱ 만약 진짜 이 풀이 보게 된다면 다시 공부하고 오셔야 해요. 암튼 풀이 ㄱㄱ 흠... $query = "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'"; 이런 식이네요.또 조건은 $result['id']만 있으면 되니깐 참만 맞춰주면 되고 ㅋㅋpw는 무시하기 위해서 주석처리 하고,필터링도 별거 없고 싱글 쿼터 (' 공감수 0 댓글수 0 2017. 3. 2.
  • [Lord Of SQL injection] 사이트 안내 ㅎㅇㅎㅇ 이 카테고리는 LOS에 대한 풀이를 올릴 것입니다. 링크는 http://los.eagle-jump.org/모두들 열공합시다.webhacking.kr과 다르게 힌트 먼저 주고 풀이 올리는 식으로 할 꺼임. 귀찮아도 머리 한 번 더 굴리시는게 좋아요. 공감수 1 댓글수 0 2017. 3. 2.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.