워게임
-
들어가자마자 쿠키가 반겨준다.. 쿠키와 관련이 있는 문제 같으니 바로 확인해보자. 쿠키 값으로 'WlhsS2NGcERTVFpKYWtscFRFTktNR1ZZUW14SmFtOXBXak5XYkdNelVXbG1VVDA5' 확인 하였고 쿠키 값에 정보가 들어가 있을 수 있으니 디코딩을 시도. 3회 base64로 디코딩 해보니 id=2, guest라는 값이 들어가 있는 것을 확인할 수 있었다. 그럼 id=1, admin으로 해서 쿠키 값을 전송해 보면 flag 값을 얻을 수 있을거 같다. 변조 후 전송해보았지만 깨꿀맛 쿠키가 패스워드 틀림과 함께 나를 반겨준다... 찾아보니 이문제는 strcmp 취약점을 이용해서 푸는 문제이다. strcmp에서 어떤 문자열을 비교할때 배열을 넣게 되면 우회가 가능하다.(php 버전..
[HackCTF] Web - Cookie 풀이들어가자마자 쿠키가 반겨준다.. 쿠키와 관련이 있는 문제 같으니 바로 확인해보자. 쿠키 값으로 'WlhsS2NGcERTVFpKYWtscFRFTktNR1ZZUW14SmFtOXBXak5XYkdNelVXbG1VVDA5' 확인 하였고 쿠키 값에 정보가 들어가 있을 수 있으니 디코딩을 시도. 3회 base64로 디코딩 해보니 id=2, guest라는 값이 들어가 있는 것을 확인할 수 있었다. 그럼 id=1, admin으로 해서 쿠키 값을 전송해 보면 flag 값을 얻을 수 있을거 같다. 변조 후 전송해보았지만 깨꿀맛 쿠키가 패스워드 틀림과 함께 나를 반겨준다... 찾아보니 이문제는 strcmp 취약점을 이용해서 푸는 문제이다. strcmp에서 어떤 문자열을 비교할때 배열을 넣게 되면 우회가 가능하다.(php 버전..
2021.08.14 -
Web Client 난이도가 높아져 잠시 Server 쪽으로 넘어왔습니다. Server 난이도 또한 상당해서 풀다가 막힐 것 같네요... 일단 문제풀이 시작하겠습니다. 1. 문제 문제를 보니 패스워드를 입력하라는 구간이 나옵니다. 2. 문제풀이 가장먼저 패킷을 잡아봐야겠죠~ 응답 패킷을 보니 it's really too easy! 라며 패스워드가 나와있네요. 주어진 패스워드를 입력하여 로그인해보겠습니다. 이 패스워드를 검증하는 곳에 넣으라는 구문이 보이네요. 결과는... 패스워드를 검증하는 곳에 입력하니 파랑새가 나와 축하해주네요~ 지금까지 쉬운 문제여도 이런 적이 없었는데 다음 문제는 얼마나 어려울지 두렵습니다...
[Root-Me]/Web Server/HTML - Source codeWeb Client 난이도가 높아져 잠시 Server 쪽으로 넘어왔습니다. Server 난이도 또한 상당해서 풀다가 막힐 것 같네요... 일단 문제풀이 시작하겠습니다. 1. 문제 문제를 보니 패스워드를 입력하라는 구간이 나옵니다. 2. 문제풀이 가장먼저 패킷을 잡아봐야겠죠~ 응답 패킷을 보니 it's really too easy! 라며 패스워드가 나와있네요. 주어진 패스워드를 입력하여 로그인해보겠습니다. 이 패스워드를 검증하는 곳에 넣으라는 구문이 보이네요. 결과는... 패스워드를 검증하는 곳에 입력하니 파랑새가 나와 축하해주네요~ 지금까지 쉬운 문제여도 이런 적이 없었는데 다음 문제는 얼마나 어려울지 두렵습니다...
2021.08.10 -
전 문제인 Hell Fire 문제의 코드와 별다른 차이점이 없는 것 같다. 다만 차이점이라면 첫번째 쿼리문 옆에 주석으로 ‘same with hell_fire? really?’라는 문구가 있었다. 정말 Hell Fire와 같을 것 같냐는 문구를 보니, 뭔가 DBMS에서 설정을 한 것으로 보인다. 일단 Hell Fire에서 시도하였던 것들과 비교하여 차이점을 찾아보겠다. 다른 방법들도 비교를 해봤지만 별차이가 없는 것 같았다. import requests, string url = 'https://los.rubiya.kr/chall/evil_wizard_32e3d35835aa4e039348712fb75169ad.php' headers = {'Cookie': 'PHPSESSID=6pcue41grdd15c632..
[Lord of SQLInjection] Evil Wizard Write UP전 문제인 Hell Fire 문제의 코드와 별다른 차이점이 없는 것 같다. 다만 차이점이라면 첫번째 쿼리문 옆에 주석으로 ‘same with hell_fire? really?’라는 문구가 있었다. 정말 Hell Fire와 같을 것 같냐는 문구를 보니, 뭔가 DBMS에서 설정을 한 것으로 보인다. 일단 Hell Fire에서 시도하였던 것들과 비교하여 차이점을 찾아보겠다. 다른 방법들도 비교를 해봤지만 별차이가 없는 것 같았다. import requests, string url = 'https://los.rubiya.kr/chall/evil_wizard_32e3d35835aa4e039348712fb75169ad.php' headers = {'Cookie': 'PHPSESSID=6pcue41grdd15c632..
2021.08.10 -
새로운 문제 유형이 나왔다. 공격 백터는 order, email 입력 값에 대한 검증은 밑과 같다. order 필터링 : prob, _, ., proc, union email addslashes() : ', ", \, null 바이트 -> \', \", \\, \null 바이트 문제를 클리어하기 위해선 admin의 email 값을 알아내야한다. 첫번째 쿼리문은 select id,email,score from prob_hell_fire where 1 order by {$_GET[order]}로 order by를 이용하여 정렬을 시켜서 반환 값을 표로 출력한다. Order by 절의 기본 구조 SELECT * FROM table_name ORDER BY column_name (ASC, DESC) 데이터를 지..
[Lord of SQLInjection] Hell Fire Write UP새로운 문제 유형이 나왔다. 공격 백터는 order, email 입력 값에 대한 검증은 밑과 같다. order 필터링 : prob, _, ., proc, union email addslashes() : ', ", \, null 바이트 -> \', \", \\, \null 바이트 문제를 클리어하기 위해선 admin의 email 값을 알아내야한다. 첫번째 쿼리문은 select id,email,score from prob_hell_fire where 1 order by {$_GET[order]}로 order by를 이용하여 정렬을 시켜서 반환 값을 표로 출력한다. Order by 절의 기본 구조 SELECT * FROM table_name ORDER BY column_name (ASC, DESC) 데이터를 지..
2021.08.08 -
바로 View Source를 통해서 확인해보자. 소스보기를 통하니 "240610708"을 md5로 암호화한 값과 입력값을 sha1으로 암호화한 값이 일치하면 flag 값을 반환한다는 것을 알 수 있었다. "240610708"을 md5로 암호화 하면 "0e462097431906509019562988736854"로 암호화 된 값을 확인할 수 있었다. 그러면 어떻게 md5와 sha1의 암호화한 동일한 값을 찾을 수 있을까? 바로 PHP Magic Hash라는 것을 찾아보면 알 수 있다. php magic hash 라는 것에 대해 간단히 설명하면 이렇게 두가지 변수가 선언되어 있다고 하면 $a == $b라하면 동일하다고 판단된다. 왜냐하면 e를 지수로 판단한다 즉, $a가 0*e1234 = 0이라 판단되고, $..
[HackCTF] Web - 마법봉 풀이바로 View Source를 통해서 확인해보자. 소스보기를 통하니 "240610708"을 md5로 암호화한 값과 입력값을 sha1으로 암호화한 값이 일치하면 flag 값을 반환한다는 것을 알 수 있었다. "240610708"을 md5로 암호화 하면 "0e462097431906509019562988736854"로 암호화 된 값을 확인할 수 있었다. 그러면 어떻게 md5와 sha1의 암호화한 동일한 값을 찾을 수 있을까? 바로 PHP Magic Hash라는 것을 찾아보면 알 수 있다. php magic hash 라는 것에 대해 간단히 설명하면 이렇게 두가지 변수가 선언되어 있다고 하면 $a == $b라하면 동일하다고 판단된다. 왜냐하면 e를 지수로 판단한다 즉, $a가 0*e1234 = 0이라 판단되고, $..
2021.08.08 -
공격 백터는 pw 파라미터 하나다. pw 파라미터의 검증은 prob, _, ., (), col, if, case, when, sleep, benchmark를 필터링하고 있으며, 두번째 쿼리에는 addslashes 함수를 사용하여 쿼리문에 넣어지고 있다. 필터링 목록에 있는 함수들은 정리하였다. col 이것은 함수가 아니고, column이라는 단어을 막기 위해 목록에 넣는 것으로 판단이 된다. if IF(requested, A, B)으로 사용 가능하며 requested가 True일 때 A가 반환되며, False일 때 B을 반환하다. case, when CASE WHEN 조건1 THEN A WHEN 조건2 THEN B ELSE C END 으로 사용 가능하며 조건1일 때 A를 반환, 조건2일 때 B를 반환, ..
[Lord of SQLInjection] Dark Eyes Write UP공격 백터는 pw 파라미터 하나다. pw 파라미터의 검증은 prob, _, ., (), col, if, case, when, sleep, benchmark를 필터링하고 있으며, 두번째 쿼리에는 addslashes 함수를 사용하여 쿼리문에 넣어지고 있다. 필터링 목록에 있는 함수들은 정리하였다. col 이것은 함수가 아니고, column이라는 단어을 막기 위해 목록에 넣는 것으로 판단이 된다. if IF(requested, A, B)으로 사용 가능하며 requested가 True일 때 A가 반환되며, False일 때 B을 반환하다. case, when CASE WHEN 조건1 THEN A WHEN 조건2 THEN B ELSE C END 으로 사용 가능하며 조건1일 때 A를 반환, 조건2일 때 B를 반환, ..
2021.08.07