-
1팀 남채림 Write-Ups (webhacking.kr_old_26, 39)2021/Write-Ups 2022. 1. 25. 23:51
view-source 라는 하이퍼링크가 있다.
하이퍼링크를 누르니 코드가 보인다.
중간에 solve(26)이라는 코드가 있는 걸 알 수 있다. webhacking 문제들 양상을 보니 저 문장이 실행되어야 이번 문제를 해결할 수 있을 것 같다. solve 문장은 if문 안에 있는데, id 가 acmin인 것이 조건이다.
이 문장은 조건 만족시 결국 no를 출력하고 나가지므로 무시하고
여기에서 결국 urldecode($_GET['id'])가 admin이 되어야 한다.
urldecode 함수는 문자열을 url 디코딩해주는 함수라고 한다. 그러므로 admin을 인코딩 한 값을 넣어주면 된다.
끝에서 안돼서 계속 찾아봤는데 여기서 한번 더 인코딩을 해야한다고 한다. 원래 PHP는 인코딩 값을 자동으로 디코딩한다.
표를 따라 admin 을 두번 인코딩해주면 %2561%2564%256D%2569%256E 이 된다.
url에 id 값으로 이 인코딩 값을 주고 새로고침한다.
문제가 해결 되었다.
이번 문제 역시 소스코드 하이퍼링크가 있다. 위쪽에는 무언가 입력/제출 가능한 폼도 있다.
앞 문제와 동일하게 solve 문장을 실행시켜야할 것이다. $result[0]이 1과 같아야 한다.
위쪽 코드를 살펴보면 (함수는 구글링했다.)
파라미터가 \\이면 공백으로 치환,
파라미터가 ' 이면 ''으로 치환 (? )
파라미터를 15자까지만 자른다.
아이디 길이는 14이하이여야 하고 아이디는 $_POST['id']여야 한다.
그러나 잘 보면
여기 맨 앞 '를 닫아주는 '가 없다. 그러므로 ' 값을 전달해주어야 하는데 위 조건에 따르면 '은 '두개로 치환된다. 여기 부분이 살짝 넌센스스러운데 간단하게 생각하면 쉽다. 위 조건을 역이용하면 된다. 15자까지 받는다고 했으니 마지막에 '을 입력해 하나의 '는 잘리게 만들면 된다. id 값은 대충 name으로 하였다. (다른 id 값도 물론 된다.후에 다른 것도 넣어보니 웬만한건 되었다.)
name이 4자이니 공백을 10개 넣은 후 '를 넣었다.
'2021 > Write-Ups' 카테고리의 다른 글
4팀_박윤진 write-ups (ctf-d_플래그를 얻어라!) (0) 2022.01.25 4팀_박윤진 write-ups (ctf-d_플래그를 얻어라!) (0) 2022.01.25 4팀_김세연 write-ups (ctf-d_내 친구 Mich는 이 멋진 튤립…) (0) 2022.01.25 2팀_장지은_Write_Ups (HackCTF_잔상) (0) 2022.01.25 4팀_김세연 write-ups (ctf-d_저는 이 파일이 내 친구와…) (0) 2022.01.25