파일을 다운받아보니 html파일만 있었다

열어보니 귀여운호박 등장

2049번쯤 클릭하다가 손이 아파서 포기,,

코드를 보니 $('#jack-target').click() 함수가 counter의 값을 늘려준다

콘솔에 다음과 같이 입력하면 자동으로 10000번 클릭 효과가 나타나서

flag값이 뜬다!
🔑 DH{I_lik3_pumpk1n_pi3}

문제 페이지 접속하니 다음과 같은 화면이 뜬다

Upload 탭에 들어가면 파일을 업로드할 수 있다

실제로 파일을 올려보면 아래처럼 파일이 저장된 경로를 보여준다

그리고 List 탭에 들어가보면 내가 업로드한 파일 리스트를 볼 수 있다

이제 주어진 index.php, list.php, upload.php 파일을 보면 딱히 단서가 될 만한 부분이 없다
그리고 문제에 플래그는 flag.txt에 있다고 했으므로

다음과 같이 flag.txt로 이동하는 command를 실행하는 php 파일을 작성하여 업로드한다

다시 List 탭에서 업로드한 파일을 들어가보면 플래그를 볼 수 있다!!!

🔑 DH{c29f44ea17b29d8b76001f32e8997bab}
문제 페이지에 접속하면 다음과 같은 화면이 나온다

코드를 보면 데이터베이스에 저장된 유저 정보를 볼 수 있다
| userid | userpassword |
|---|---|
| guest | guest |
| admin | ??? |

guest로 로그인해보면

alert창이 뜬다

로그인부분 코드를 보면
select * from users where userid="{userid}" and userpassword="{userpassword}"
userid와 userpassword를 확인해서 일치하는 유저의 정보를 가져오고 있고,
if userid == 'admin':
return f'hello {userid} flag is {FLAG}'
admin인지 userid만 확인하고 있기 때문에

다음처럼 userid부분에 admin"--처럼 추석처리 해서
쿼리문 뒷부분에서 userpassword확인 하는 부분을 날려버린다

그럼 플래그가 보인다!!

🔑 DH{c1126c8d35d8deaa39c5dd6fc8855ed0}
너무오랜만에 ctf문제 풀었더니 쉽지않다..
볼 때마다 늘 새로워
솔직히 너무 쉬운 문제만 풀긴했는데,,,,,
워밍업이라 생각하고 다음주부턴 각성해야겟다