[Solved in under 4 hours 11 minutes]
뭔가 풀거 없나 해서 스윽 봤는데 어라라?
6명 밖에 안 푼 문제가 있네?
최근에 나온 문제인가 생각해서 검색해봤는데 아직 Webhacking.kr 4xx Write up이 하나도 없는게 아닌가!!!!!!!
내가 7등으로 풀고 우주최초 Write-up을 작성해보자! 라는 생각만을 가지고 들어갔다.
가보자

증거.

뭔진 잘 모르겠지만 소스코드를보자

별거없으니 제끼고
사실 이때 이제 뭘 해야하지? 싶어서 생각난게 robots.txt 였다 ㅋㅋㅋㅋㅋㅋ

404 : KEY{23c0b3a9ccc44b72f17a99eadb351d2f}
근데 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 아니? 아!!!!! 4xx란 뜻이 400번대 에러를 뜨게 해서 키 값을 채우라는거구나? 라는 생각이 들었다 ㅋㅎㅎㅋ
HTTP 404 Not Found
404 에러는 그냥 없는 애를 내놔!!! 이런 느낌이다 뭐 다 알거라 예상된다.
그래서 400번대 에러가 어떤게 있는지 찾아보다 아주 좋은 티스토리를 발견했다.
4XX << 인파님의 티스토리인데 400번대 에러 정리를 정말 잘하셨다.
감사합니다 또 감사합니다..
일단 내가 아는 에러들을 먼저 해보자

403 : KEY{cd79de80772c1873bcf63e41e3379c6f}
HTTP 403 Forbidden
간단하게 말하자면 서버에는 있지만 권한이 없어서 거부된 경우에 발생한다
.htacces 는 서브도메인 찾을때 많이 봐둬서 알고있다.

405 : KEY{e5602408f2037c05bbbb0995fec6bc58}
HTTP 405 Method Not Allowed
허용되지 않은 메서드를 요청할 때 발생하는 에러코드이다
http 요청 메서드 중 하나인 TRACE로 바꿔서 보내니 역시 막혀있어서 405로 날라왔다.

400 : KEY{10fac9b9f4112a1d9a650fec275bf164}
HTTP 400 Bad Request
간단하게 요청을 그냥 마음대로 보내게되면 서버에서 니 뭔데? 이런 느낌이다.
형식에 맞춰서 보내기전까지 400 줄게~ 이런느낌
여기까지가 내 지식 범위였고 이제부터는 하나하나 맨땅에 헤딩하면서 했다.

414 : KEY{d1617527ac2143863bc347c6123ed921}
HTTP 414 URI Too Long
말 그래도 URI가 너무 길 때 발생한다고 해서 냅다 도배를 하니 나왔다

417 : KEY{ed2dd6cb38fe6a4a10e46d22d20047e6}
HTTP 417 Expectation Failed
클라이언트가 서버에 Expect 조건에 맞게 해줘~ 했는데 서버에서 안 돼 돌아가 할 때 나오는 에러코드이다
expect: a 는 말도 안되는 놈인데 그래서 서버에서 이게뭔데? 돌아가 형식으로 뽑을려고 일부러 말도 안되는 값을 넣었더니 주었다

408 : KEY{e44fa3e1865a3839cbc0b658f1ae08cf}
HTTP 408 Request Timeout
요청을 보냈는데 서버가 응답을 안할 때 발생하는 에러코드이다.
우연히 417번 노리면서 테스트하다가 요청이 안오더니 408 에러코드가 떴다 개꿀 ㅋㅋ
서버에서 이게 뭔데? 이전에 아니 뭐지 이거? 같으 느낌으로 뭘 어떻게 받아들이지 몰라서 응답 시간이 길어지다 이렇게 나온거 같다 왠지 억지지만 뭐 어때

416 : KEY{622eced9aa42670c10ee74d29e58e5eb}
HTTP 416 Range Not Satisfiable
클라이언트가 리소스의 범위를 설정했는데 그게 안 맞을 때 방해한다고 한다.
솔직히 잘 몰라서 그냥 일반적인 값 벗어나봤는데 됐다.
여기까지 오는데 2시간 걸렸는데
나머지 하나 찾는데 2시간 걸렸다..
마지막에는 별에 별 걸 다 보다가 이것을 발견했다.

개발자 도구에서 네트워크를 보다가 Etag를 발견했는데 와 씨 이거다 싶었다.
flag.png가 고유번호가 있으니 일부러 틀린 걸 보내 412를 뽑을 생각이다.

412 : KEY{cd7609461c0dbe41a9137056fa4085e2}
HTTP 412 Precondition Failed
간단하게 특정 파일이나 페이지의 고유번호가 있는데 그 고유번호를 비교를 할 수 있다 바로 If-Match로.
If-Match = "3ec2-61b15b065f900" 이렇게 flag.png의 Etag를 넣어 보냈다면 200이 돌아오지만?
If-Match = "Ccr3t" 이런 말도안되는 값을 보내면 서버에 이거 얘 Etag 맞아? 보내면 서버에서 어 아니야~ 대답해주는거다..
이거 알기까지 진짜 오래 걸렸다 후 하 후하

마지막을 키값을 넣고

진짜 하... 뜨자마자 바로 달려갔다 진짜

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 답 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
flag{iViZGYM7K5I}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
와씨 ㅠㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅠㅠㅜㅜㅜㅜㅜㅜㅜ 진짜 2시간동안 400번대 에러 하나하나 살펴보면서 때려넣고 나머지 412번 에러 나오는데 2시간 걸렸다 하 ㅜㅜㅠㅜㅜㅜㅜㅜㅜㅠ 이제 진짜 조금만 더 하다가 안나오면 나중에 할 생각이었는데
이게되네?

전 세계에서 7등으로 푼 문제 & 우주최초 Write-up(진짜임.) 기념샷
Webhacking.kr 4xx Write-up
이상 보고 끝!