그동안 과제가 밀렸다.
14번
일단 가장 쉬워보이는 14번 문제부터 풀어보자
<html>
<head>
<title>Challenge 14</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }
</style>
</head>
<body>
<br><br>
<form name=pw><input type=text name=input_pwd><input type=button value="check" onclick=ck()></form>
<script>
function ck(){
var ul=document.URL;
ul=ul.indexOf(".kr");
ul=ul*30;
if(ul==pw.input_pwd.value) { location.href="?"+ul*pw.input_pwd.value; }
else { alert("Wrong"); }
}
</script>
</body>
</html>
일단 if 문 조건을 맞춰보기 위해서 ul.indexOf(".kr")의 값을 알아보았다.
18*30=540 이고 input_pwd.value=540으로 설정해주면 될 것 같았다.
어.. 너무 쉬운걸 고른것 같아서 다음 문제는 좀 난도가 있는 것으로 선택했다.
19번
admin으로 submit 하면 yournotadmin 이라는 메세지가 뜨고 다른 id를 치면
그리고 로그아웃이 안먹어서 쿠키값을 확인해보니 userid라는 쿠키가있었다.
쿠키를 확인하기 전에 sql injection이 될까 해서 테스트를 해보았는데 ' 문자는 그냥 사라지는 것을 보아서 힘들 것 같다. 아마도 바이트 단위의 검사가 이루어지나보다. 그리고 문제 범위도 sql injection이 아니다.
해당 쿠키값을 base64 decode 해보니
d95679752134a2d9eb61dbd7b91c4bcc03c7c0ace395d80182db07ae2c30f034d95679752134a2d9eb61dbd7b91c4bcc4b43b0aee35624cd95b910189b3dc231865c0c0b4ab0e063e5caa3387c1a8741
가 나왔고 이는 160byte다. 160byte 짜리 해시값은 없는데... 해서 보니까 osori는 5글자고 160/5=32 였다.
32바이트 해시는 md5가 대표적이다.
md5('o')=d95679752134a2d9eb61dbd7b91c4bcc 으로 한글자씩 인코딩해서 이어 붙인 것이다. 이걸 비슷하게 admin으로 바꿔보자.
0cc175b9c0f1b6a831c399e2697726618277e0910d750195b448797616e091ad6f8f57715090da2632453988d9a1501b865c0c0b4ab0e063e5caa3387c1a87417b8b965ad4bca0e41ab51de7b31363a1
그리고 다시 base64 encoding을 해서 쿠키를 바꾸어주면?
18번
no=2%09or%09no=2
그냥 대놓고 소스코드를 주기 때문에 공백문자를 tab 이나 개행문자등으로 우회하면 된다.
20번
2초안에 저 모든 것을 입력해야 한다. 쿠키에 st라는 시간을 저장하는 쿠키가 있어서 이를 변조해 보았지만, no cheat라고 뜬다.
그래서 개발자콘솔에서 lv5frm.submit(); 를 입력해보았다.
아무래도 captcha 값 또한 php로 넘어가는 것 같았다 .
위 코드를 복사해서 재빠르게 붙여넣으면 success 가 된다.
21번
대놓고 blind sql injection이라고 알려준다. timebased 가 먹는지 테스트 해보았는데, sleep 함수 if 함수가 잘 작동한다.
인자가 get 방식으로 전달되어서
pw=%27%20or%20if(id=%27admin%27%20and%20length(pw)=36,sleep(2),0)%23 를 이용해서 비밀번호가 36byte 라는 것을 알아주었다. 비밀번호가 좀 길어서, 혹시 ascii가 아니라 다른 인코딩인지 확인해보았는데, 다행이도 ascii 인코딩인 것 같았다.
그래서 like 와 %를 이용해서 평소에 하던대로 브루트포싱을 해서 구한 pw는 there_is_no_rest_for_the_white_angel 이 나왔다.
23번
저걸 입력하라고 한다. 당연하지만, 필터링 되어있다. 신기하게도 두글자 이상 들어가면 no hack이 떴기 때문에, 혹시 null 문자로 이를 우회해줄 수 없을까 생각을 해보아서 넣어보았다. 잘 되었다.
<s%00c%00r%00i%00p%00t>a%00l%00e%00r%00t%00(1);</s%00c%00r%00i%00p%00t>를 주소창에 넣어주면 클리어다.
'전공쪽 > 동아리 관련' 카테고리의 다른 글
webhacking.kr 1,3,4,31,38 (0) | 2021.02.08 |
---|---|
webhacking.kr 26,54,27,36,28 (0) | 2021.02.02 |
sfctf winter write up (0) | 2021.01.26 |
sfw8 write up (0) | 2021.01.11 |
sfw5 write up (0) | 2021.01.10 |