분류 전체보기(362)
-
baby toctou🍼 풀이 (PW = FLAG)
보호되어 있는 글입니다.
2024.04.08 -
old-57 풀이
메시지를 제출할 수 있는 폼이 보입니다 아무거나 넣어보겠습니다 Done이라는 글자만 뜨고, 별다른 변화는 없습니다 msg와 se를 GET 방식으로 받아온 후, addslashes()로 이스케이핑 해줍니다 그 후 preg_match()로 se에 대한 필터링을 합니다 (select, and, or, not, &, |, benchmark) mysqli_query()를 보면, chall57의 pw를 찾아야 한다는 것을 알 수 있습니다 msg에 값을 넣어줘도 뜨는 게 없으니, se 파라미터에 sleep() 함수를 사용해서 Time-Based로 풀어주겠습니다 import requests import time url="https://webhacking.kr/challenge/web-34/index.php?msg=he..
2024.04.07 -
old-04 풀이
해시처럼 보이는 값이 쓰여있고, 그 아래에는 password 제출 폼이 보입니다 소스를 보니 SHA1 해시였네요 무지성 브포를 방지하기 위한 sleep() 함수도 보입니다 hash에는 10000000부터 99999999까지의 값 중 하나를 랜덤으로 뽑은 뒤, "salt_for_you" 문자열을 붙여 넣어줍니다 그리고 이 값에 대한 sha1 해싱을 500번 진행해 줍니다 그렇다면 이 값은 해싱을 500번 진행하고 나온 결과값이겠네요! 그런데 새로고침 할 때마다 값이 바뀝니다..? 레인보우 테이블을 만들어서 풀어야 하는 문제네요 바로 생성 코드를 만들어줬습니다 처음에는 view-source에 나온 범위 그대로 10000000부터 99999999까지 for가 돌아가도록 만들었습니다 하지만 메모장에 적히는 속도..
2024.04.03 -
old-45 풀이
SQL Injeciton 문제입니다 id와 pw에 이스케이핑 처리를 해주고, id에는 mb_convert_encoding() 함수를 적용시킵니다 id와 pw 둘 다 preg_match()로 필터링을 해주는데, 쿼리의 결과가 존재하면서 id의 값이 "admin"일 때 문제가 해결됩니다 여기서 mb_convert_encoding() 함수에 대해서 찾아봤는데, php에서 인코딩 방식을 변환해 주는 함수라고 합니다 그리고 이 함수에는 취약점이 존재하는데, [%a1~%fe]\ 형태의 2byte는 1byte로 인식이 됩니다 이렇게 되면 addslashes()를 우회할 수 있게 됩니다 인젝션 할 때는 pw를 알아내서 admin으로 로그인하는 방법을 사용하려고 했습니다 하지만 pw가 md5 처리가 되어있어서 그 방법은..
2024.03.27 -
old-60 풀이
페이지에 처음 접속하면 idx를 보여줍니다 (51662) 접속 모드에 따라 페이지 동작이 다른 것으로 보입니다 이 부분에서 sleep() 함수가 사용되는 걸 보면 레이스 컨디션이 터질 것이라 예상됩니다 if문 부분을 보면, is_numeric()을 통해 PHPSESSID의 값이 숫자인지 아닌지 판단해 줍니다 만약 PHPSESSID가 숫자가 아니라면 Access Denied 처리를 해주네요 PHPSESSID를 숫자값으로 바꿔보겠습니다 이러면 로그인이 풀리게 됩니다 다시 로그인해서 문제에 접속해 주면.... Access Denied가 없어졌네요 제대로 우회가 된 걸 알 수 있습니다 이제 시크릿 탭을 하나 열어서 문제에 동시 접속을 해주며 레이스 컨디션을 터뜨려보겠습니다 시크릿 창에서도 PHPSESSID를 숫..
2024.03.25 -
RPG1 풀이
이번 문제는 RPG Maker로 만들어졌나 보네요 게임 접속부터 해보겠습니다 캐릭터와 물길, 상자가 보입니다 딱 봐도 저 상자를 열어야 할 것처럼 생겼습니다 열어보려고 했는데 역시나 안되네요 그래서 JS를 변조해보려고 했는데, 코드가 너무 깁니다....ㅋㅋ 이걸 하나하나 다 분석하기엔 너무 힘들 것 같고, 다른 방법을 찾아야 할 듯합니다 개발자 도구에서 뒤적거리던 중, Network 탭에서 Map001.json을 발견했습니다 "현재 로딩되는 맵에 대한 정보를 저렇게 JSON으로 받아오는 게 아닐까?"라는 가설을 세운 상태로 열어봤습니다 맨 윗부분에 "autoplayBgm", "battleback1Name", "bgm" 등이 있는데, 아마 옵션의 상태인 것 같습니다 그리고 그 아래 data가 잔뜩 있는데,..
2024.03.18