[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] 6번
2021. 5. 3. 21:24
Wargame/Webhacking.kr
쿠키값 변조 문제 처음에 쿠키값이 설정되어 있지 않은 경우 default 로 guest와 123qwe 을 각각 id, pw로 해서 20번 base_64 encoding 하고, 규칙대로 replace 한다. User, password 쿠키값이 존재할 경우, 아까와는 반대로 replace 하고, 20번 base64_decode 한다. 이때 id, pw 값이 각각 “admin, nimda” 면 solve()가 실행된다. 그러면 반대로 “admin, nimda”를 base64_encode 해주고, replace 해줘서 나오는 값을 쿠키에 넣어주면 될 것 같다. -> 위를 컴파일하면 나오는 id, pw 값을 edit this cookie 를 이용해 쿠키 값을 변조해주면 되는 문제였다.
[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에서는 공백..