웹해킹(77)
-
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 -
old-09 풀이
1번 페이지와 2번 페이지를 눌렀을 때는 별다른 힌트가 나오지 않았는데, 3번 페이지에만 힌트가 나와있습니다 테이블의 컬럼명이 id와 no이고, 3번의 id는 "password"라고 합니다 아마 Blind SQL Injection 문제인 것 같습니다 문제에서 컬럼의 구성을 알려주었으니, 필터링되는 문자와 참/거짓의 출력이 어떻게 나오는지 등을 파악해 주면 됩니다 no에 여러가지 값을 넣어봤습니다 1~3을 제외한 숫자 : 별다른 문자열이 적혀있지 않은 페이지 특수문자 : Access Denied이 적힌 페이지 1 : Apple이 적혀있는 페이지 2 : Banana가 적혀있는 페이지 3 : Secret 페이지 그래도 괄호랑 substr, like는 필터링되지 않으니, 이걸로 파이썬 코드를 짜서 돌려주겠습니다..
2024.03.16 -
old-28 풀이
파일을 업로드할 수 있도록 되어있습니다 테스트~~~~라고 적힌 test1.txt를 업로드해보겠습니다 한글은 깨지나 보네요 뒤에 물결표 4개가 보이는 걸 보니, 파일에 적은 내용이 그대로 출력되는 듯합니다 php로 기본 웹쉘 파일을 하나 만들어서 업로드해주겠습니다 처음 시작할 때, 꺽쇠가 필터링되는 걸 확인할 수 있습니다 이렇게 되면 확장자 우회를 해봤자, 나중에 필터링이 될 테니... 평범한 방법으로는 풀 수 없는 문제인 것 같네요 처음에 준 미션이 ./upload/EWUmY0wLfsn8/flag.php에 있는 파일을 읽어오는 것이었는데... 아이디어가 떠오르지 않아서 구글링을 해봤습니다 https://h232ch.tistory.com/37 8. 업로드 공격 우회 1. .htaccess 파일 업로드 (아..
2024.03.15 -
old-50 풀이
대놓고 SQL INJECTION이라고 쓰여있길래 바로 코드부터 가져왔습니다 문제가 풀리는 조건은 lv가 3이 되었을 때라고 합니다 select lv from chall50 where id='{$_GET['id']}' and pw=md5('{$_GET['pw']}') 쿼리를 보면 pw가 md5로 들어갑니다 이 부분을 주석처리 해주고, union select 3을 해주면 될 것 같습니다 https://securitynote.tistory.com/3 [SQLi] magic_quotes_gpc, mysql_real_escape_string() 우회 참고 URL http://www.securiteam.com/unixfocus/6X00P0ANFM.htmlhttp://pjongy.tistory.com/131http:..
2024.03.14