일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- lord of sql injection
- los of sql injection xavis
- xavis 라이트업
- wolfman 풀이
- zombie_assassin
- cobolt 라이트업
- orc
- darkelf 라이트업
- zomblie_assassin 라이트업
- goblin 풀이
- Los
- gremlin 라이트업
- wolfman 라이트업
- los 라이트업
- wolfman
- goblin 라이트업
- darkelf
- orge 라이트업
- orc 라이트업
- cobolt
- NULL 잡아먹는 놈
- 34t3rnull
- darkelf 풀이
- orc 풀이
- gremlin 풀이
- SQL Injection
- lord of sql injection 풀이
- cobolt 풀이
- los 풀이
- blind sql injection
- Today
- Total
목록0x0070 워게임 문제 풀이 (60)
NULL 잡아먹는 놈
Prob32 문제 의도 : 쿠키 값 변조 메인 화면에는 투표가 있다. 근데 내 닉네임은 없으므로 맨 밑에 Join을 눌러 등록해주었다. 이제 투표를 해보기로 했다. 일단 1이 올랐다. 근데 그 후 투표를 하면 이런 화면이 뜬다. 분명히 어떤 형식의 변수를 통해 확인을 하는 것 같은데 일단 세션에서 확인을 하면 내가 조작하는게 불가능하기 때문에 쿠키를 먼저 보기로 했다. 쿠키 인자에 vote_check라는 값이 있었다. 이제 이 쿠키가 생기는 것을 차단시키면 될 것 같았다. 이렇게 한 뒤 hit=34t3rnull 인자를 계속 넘겨주었다. 일단 1등한 인증샷부터 찍었다.
Prob31 문제 의도 : 소켓 통신, 포트 포워딩 문제는 위와 같다. 그냥 소켓 통신해서 문자열 받는 문제 같다. 일단 포트 포워딩을 해주기로 했다. 외부를 10000~10100, 내부를 10000으로 맞춰주려고 했는데 그런 기능이 구현이 안 되어있나보다... 무조건 그대로 넣어주어야했다. 일단 nc를 열어 받아주기로 했다. 손 쓰레딩을 해버렸다. 계속 포트는 매치가 되는데 connection out이 뜨길래 뭔가 생각했더니 방화벽도 꺼야하는 것이었다. 이렇게 설정을 하고 새로고침을 계속 눌러봤다.
Prob27 문제 의도 : SQL injection, php 연산자 우선 순위, 필터링 우회 SQL injection 문제이다. 해결해야할 것은 다음과 같았다. no 인자의 유무 필터링 우회 일단 필터링은 가장 기초적인 것이 걸려있는데 슬프게도 (는 막혀있다. 그래도 )는 쓸 수 있으니 --주석으로 뒤의 )를 없애주면 된다. 그냥 id를 admin 만들면 되겠다. and는 or 보다 연산자 우선 순위가 높으므로 no를 거짓으로 만들어 주어 id=guest의 쿼리를 무시시켜주고 id=admin를 가져오는 쿼리를 만들어 주면 된다. 첫 번째로 생각한 쿼리는 "-1) or id LIKE 'admin'--+" 이다. 일단 되지는 않는 것 같다. 이러면 쿼리 오류인데 어떤 부분이 잘못되었나 생각해보..
Prob26 문제 의도 : double url encode 되게 쉽다. double url encode 문제이다. 딱 보니 url encode 두번 하면 된다. admin을 url encode 하면 %61%64%6d%69%6e인데 %를 인코딩하면 %25이다. 그래서 double url encode를 하면 %2561%2564%256d%2569%256e를 넣어주면 된다.
Prob25 문제 의도 : NULL로 확장자 바꾸기 (파일 업로드 취약점 비슷한 듯) 들어가자 마자 웹쉘 처럼 생긴 화면이 나온다. 그리고 URL에 file=hello라고 쓰여있는 것을 보아 hello.txt의 내용이 나온 것 같다. 소스 보기를 해도 아무런 단서도 없으니 일단 password.php를 쳐봤다. 아무 것도 안 보여준다... 그러면 hello.txt를 쳐봤다. hello world란 문자열 그대로 나온다. 일단 password.php를 index.php에서 file이란 인자로 읽지 않는 이상 안 보여주는 것 같다. 근데 화면이 웹쉘 처럼 생긴 것이다 보니 커맨드 인젝션 문제가 아닐까? 생각해 보았다. 환경은 php니깐 ;로 문자열을 끊고 다른 명령어를 넣어 보았다. 안 된다. "cat pa..
Prob24 문제 의도 : extract 함수 취약점, REMOTE_ADDR 수정, str_replace 필터링 우회, 쿠키값 변조 이번 문제의 메인 화면이다. 이것만 봐서는 아무 것도 모르니 소스 보기를 해보니 index.phps를 보라고 한다. 일단 extract 함수를 보니깐 딱봐도 extract 취약점을 이용한 문제 같다. 이 취약점은 다음과 같은데 extract를 사용하면 $_GET, $_SERVER, $_POST, $_COOKIE, $_SESSION 등이 붙어있는 변수의 키 값을 따로 변수로 빼준다. 예로 extract($_COOKIE)를 하면 $_COOKIE['example']이라는 변수는 example로도 사용할 수 있다. 이제 문제는 ip를 127.0.0.1로 맞춰야 하는 것이고, COO..
Prob23 문제 의도 : XSS 필터링 우회, eregi 취약점 클리어 조건은 되게 쉽다. 바로 \를 삽입하면 된다. 일단 저 스크립트 문 그대로 넣어보기로 했다. no hack이라고 뜬다. 대충 예상 가는 것이 필터링 우회인데 먼저 무엇이 필터링 되나 하나씩 집어넣어 보았다. 일단 sc에서 필터링이 걸린다. 이곳에서 생각할 수 있는 것이 script와 같이 필요한 문자열이 필터링 걸림을 알 수 있고, 우회할 수 있는 방법을 생각해야하는데 %0a, %20, %0d, %09를 이용하여 우회 대소문자를 통한 우회 NULL을 이용한 우회 정도를 생각할 수 있다. 분명히 nohack은 안 뜬다. 하지만 소스보기를 했을 때 스크립트처럼 넣기는 힘들어 보인다. %0a, %09, %0d, %20 모두 안 된다. 그..