[Webhacking.kr] 12번
2021. 5. 4. 00:48
Wargame/Webhacking.kr
자바 스크립트 문제 Js 부분이 난독화 되어있음. 구글링을 통해 aaencode 를 통해 암호화된 것을 확인함. var enco=''; var enco2=126; var enco3=33; var ck=document.URL.substr(document.URL.indexOf('=')); for(i=1;i
[Webhacking.kr] 11번
2021. 5. 4. 00:26
Wargame/Webhacking.kr
정규 표현식 문제 Php 부분을 살펴보면 get 방식으로 받은 ‘val’ 값과 정규표현식이 같을 경우 solve(11) 가 실행된다. 정규 표현식(Regular Expression)은 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리 할 수 있도록 하는 수단이다. http://tcpschool.com/php/php_regularExpression_basic 정규 표현식 $pat 을 분석하면 다음과 같다. https://regex101.com/ Code Meaning Example [1-3] 1과 3사이의 수 1 [a-f]{5} (A-f 사이의 수)* 5 aaaaa _.* '_' 문자와 임의의 문자(.) 0개 이상 $_SERVER[REMOTE_A..
[Webhacking.kr] 10번
2021. 5. 4. 00:19
Wargame/Webhacking.kr
웹개발자도구 앞에 있는 O를 클릭하면 조금씩 1px만큼 움직인다.. 소스코드를 확인하니 다음과 같다. This.style.left==1600이 되면 어느 디렉터리로 이동하는 것 같다. Left 값을 1599로 바꾸고, O를 클릭해보았다.
[Webhacking.kr] 8번
2021. 5. 4. 00:16
Wargame/Webhacking.kr
sql injection 문제 소스 코드를 보면 특정 HTTP_USER_AGENT 인 id 값을 가져와 $ck에 저장한다. 그리고 $ck 값이 존재하고 "admin" 일 경우 solve() 가 실행된다. $ck 값이 존재하지 않을 경우엔 insert 문을 통해 agent, ip, id 값들을 추가한다. -> 버프 스위트를 이용해 "admin" 을 추가하면 될 것 같다. User-Agent 에 a','1','admin'),('b 를 추가하였다. 이는 실제 INSERT 문에서 다음과 같이 동작할 것이다. INSERT INTO chall8(agent,ip,id) VALUES('a', '1', 'admin'), ('b', '{$ip}', 'guest') F5로 새로고침을 한 뒤, User-Agent 를 아까 a..
[Webhacking.kr] 7번
2021. 5. 4. 00:00
Wargame/Webhacking.kr
sql injection 문제 소스는 다음과 같다. $go 변수에 $_GET[‘val’] 파라미터 저장 $go 변수에 2, -, +, from, _, =, \s, *, \ 등의 문자열 존재 시 Access Denied! 발생 $rand 변수에 rand 함수를 적용한 1~5의 랜덤 값 선언 $rand 변수에 입력된 값에 따라 조건문 실행 $data에 mysqli_fetch_array($result) 문으로 데이터 값 저장 $data[0] == 1일 경우 Access_Denied! 출력 $data[0] == 2일 경우 Hello admin 출력 후 Solve(7) 수행 $data [0]이 2 값을 저장해야 Solve(7) 수행 UNION을 이용해 앞의 쿼리문을 거짓으로 만들고 뒤의 쿼리문을 참으로 만들어서 ..
[Webhacking.kr] 5번
2021. 5. 3. 21:10
Wargame/Webhacking.kr
Login 클릭 – wrong password 라고 뜬다. Join 클릭 – access denied라고 뜬다. -> url에 나온 경로를 보고 /mem 에 접속해보았다. -> join.php에 접속해보았다. Access denied 가 뜬다. 소스코드를 보니 난독화 되어있어 다음 사이트를 이용했다. https://beautifier.io/ 이후 크롬 콘솔 기능을 이용해 난독화된 코드를 풀었다. 위와 같은 코드가 나왔다. 해석을 해보면, oldzombie 라는 쿠기값이 있어야 되고 URL에 mode=1 이 포함되어야 회원가입할 수 있는 창이 뜨는 것 같다. edit this cookie로 갑자기 추가가 안되었다 ㅠㅠ Admin 으로 가입하려고 하니, 이미 존재하는 id 라고 뜬다. -> php에서는 공백..
[Webhacking.kr] 3번
2021. 5. 3. 20:22
Wargame/Webhacking.kr
SQL injection 문제 규칙을 찾아서 위와 같이 칠해주면 다음 페이지가 뜬다. 아무거나 입력하니 answer, ip가 뜬다. answer, ip 값은 고정적이다. hidden 타입으로 answer와 그 값이 전달되는 것을 알 수 있다. 처음에 입력받는 부분에 sql injection을 시도했지만, 입력이 그대로 전달되는걸 보아 문자열로 취급하는 것 같았다. 그래서 value 값에 '를 넣어보니 쿼리 에러가 발생하여 sql injection을 시도해보았다.