일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 34t3rnull
- cobolt 라이트업
- orc
- Los
- orc 라이트업
- wolfman
- blind sql injection
- cobolt 풀이
- lord of sql injection 풀이
- goblin 라이트업
- lord of sql injection
- orc 풀이
- zomblie_assassin 라이트업
- NULL 잡아먹는 놈
- gremlin 풀이
- darkelf 라이트업
- gremlin 라이트업
- zombie_assassin
- wolfman 라이트업
- darkelf
- wolfman 풀이
- los 라이트업
- SQL Injection
- los of sql injection xavis
- orge 라이트업
- los 풀이
- darkelf 풀이
- goblin 풀이
- xavis 라이트업
- cobolt
- Today
- Total
목록0x0070 워게임 문제 풀이 (60)
NULL 잡아먹는 놈
FTZ LEVEL 1 풀이ID : level1PW : level1 먼저 접속한 뒤 ls 명령어를 치니 hint라는 것이 보입니다.어떤 건지 보기 위하여 cat 명령어를 사용하여 봅시다! 응?? 글씨가 깨지네요...글씨부터 바로 잡읍시다. putty 접속 후 Translation 옵션에 가면 character set을 바꿀 수 있는데요.Use font encoding을 사용하면 됩니다. ㅎㅎ 이제 다시 cat hint로 힌트를 봅시다. 오호라 level2권한에 setuid가 걸린 파일 찾는 것입니다.trainer를 잘 해보신 분은 아시겠지만 find 명령을 쓰면 편할 것 같습니다.level2의 setuid가 걸린 파일을 찾는 것이니find / -user level2 -perm -4000 2>/dev/nul..
안녕하세요~~ 오랜만에 포스팅하네요 ㅎㅎ이번에 동아리에서 FTZ 및 LOB 등등을 풀었는데 그에 대해 라이트업을 썼었는데 공유하고 싶어서 올릴 예정입니다.먼저 FTZ를 풀기 위해선 로컬 환경을 구축해야합니다. (해커스쿨 ftz 서버가 열려있을 때는 서버 접속도 가능)일단 파일은 https://drive.google.com/open?id=0B4wQWEQyO6nwcjZpbnhmLVBHbnc 먼저 putty를 켜줍시다. 다음와 같이 나오는데요 Host Name에는 아까 적어뒀던 ip를 적어줍니다.그 다음 접속을 하면? login 창이 뜨네요!! 이러면 성공입니다. 굳굳~
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)='~~~~형식이니 이 형식에 맞춰서 파이썬 파일을 짜보았다. (제일 밑에 첨부) 일단 처음에..
HINT : 1. 어랏? 필터링에서 빼먹은 주석이?2. 문자열은 0이랑 동일 취급이라며? 문제는 위와 같다. 이번에는 길이 제약 + 주석 필터링이 걸려있다.이번에도 그냥 id값만 나오게 하면 된다.일단 주석의 종류를 살펴보자면#, -- , ;%00 , /**/ 이 있다.일단 필터링 되어있는 #과 --를 제한 주석들이 가능한지 시험해보았다. 일단 ;%00과 /**/은 쓸 수 있는 것으로 판명났다.근데 pw값의 길이가 최대 6인 것을 보아 길이가 4인 /**/보다는 길이가 2인 ;%00를 쓰기로 했다.그 다음은 문자열||1을 이용해서 풀려고 했었다.그러기 위해선 ')||1;%00을 생각했었다. ??? 쿼리를 넣고 보니 No Hack이 뜨는 것을 볼 수 있었다.')||1;%00은 길이가 7이기 때문인 것이었다..
HINT : \은 싱글쿼터를 문자열 취급으로 바꿔준대~ 이번 문제는 앞 전 문제인 zombie_assassin의 내용을 preg_match로 바꾼 문제다.처음 풀 때는 preg_match가 무적이라서 안 풀릴줄 알았고, 좌절했었다.관련 문서를 다 뒤져봤는데 char, hex를 쓰라고 하는데 아마 안 먹히는 것 같다.그래서 백슬래시를 이용하라는 문서를 토대로 공격을 진행했고, 성공했다. 일단 백슬래시가 필터링 되지 않는 것을 확인할 수 있는데 그것을 이용해서 공격해보자. 아무 오류가 안 뜨는 것을 볼 수 있다.먼저 풀이를 하고 설명을 하도록 하겠다.일단 백슬래시를 이용해서 페이로드를 작성했고, 위와 같이 클리어했다. 설명 : \를 이용해서 '를 문자열 취급해준다면select id from pob_succu..
HINT : @ereg는 취약점이 있다죠?? 이번 문제는 필터링 우회 문제 같다.어짜피 preg_match에 있는 것은 풀기 위해서 쓸 필요가 없으니, ereg를 우회해주기로 했다.ereg는 C에서 문자열 함수와 비슷하게 NULL문자를 만나기 전까지 동작한다고 한다.그러니깐 '%00을 하면은 ereg 범위에 들어가지만 %00'을 하면 ereg 범위 바깥이라는 뜻이다.한 번 우회가 되는지 확인해볼까? 깔쌈지게 우회가 된다. 이제 싱글 쿼터를 사용할 수 있으니 그냥 ||1만 해주면 끝날듯 하다. 클리어!!!
HINT : 발상의 전환이 필요하다. 문제는 다음과 같다.근데 이상한게 싱글쿼터를 우회하지 못하게 preg_match로 막아놨다.eregi면은 우회할 수 있는데 쩝....그렇다면 like 안의 구문으로 끝내야 된다고 생각했다.그래서 아스키 코드 값 다 넣어보았는데, 아무래도 Hello admin이란 단어는 안 떴었다.그래서 발상의 전환을 통해 Hello admin보다 Hello guest가 먼저 나와서 가리는게 아닐까?라는의구심이 들어서 그대로 쭉 해보았다. Hello guest 득템 득템 2!! 싱겁게 3글자에서 끝났다. 832%에서 Hello admin이 뜬 것을 보니 아마도832~~~가 답인 것 같은데 그것을 찾긴 귀찮으므로 pass~ 암튼 CLEAR!!!
HINT :1. 길이가 1을 넘지 말아야한다 -> 과연 무엇이 필요할까?2. 필터링이 아직 부족하다. 이번 문제는 다음에 제약조건이 있다. 1. 길이를 1을 넘으면 ㄴㄴ2. %20, %0A, %0D, %09가 필터링 되어있다. 이 두 조건인데, 1과 2를 조합해보면 대충 한 칸을 차지하는 공백 문자를 써야함을 알 수 있다.%20을 대신할 수 있는 문자가 무엇이 있을까??궁금하면 웹 해킹 기초 꿀팁 보도록!.......... 암튼 %20을 대신할 수 있는 것은 %0A, %0B, %0C, %0D, %09가 있으니나머지 2개를 아무거나 써주면 끝~ 이렇게나 이렇게 써주면?? CLEAR!!!!