Web Hacking

lv : {$result['lv']}"; if($result['lv'] == "admin"){ mysqli_query($db,"delete from chall59"); solve(59); } echo "view-source"; exit(); } } if($_POST['id'] && isset($_POST['phone'])){ $_POST['id'] = addslashes($_POST['id']); $_POST['phone'] = addslashes($_POST['phone']); if(strlen($_POST['phone'])>=20) exit("Access Denied"); if(preg_match("/admin/i",$_POST..
웹 해킹 문제를 풀다보면 preg_match 함수로 일부 키워드들을 필터링 한 문제들이 많이 보인다. preg_match("/admin|0x|#|hex|char|select/i",$_POST['phone']); '|'로 필터링하는 단어들을 구분하고 뒤에 i 옵션을 이용해 대소문자 구분을 하지 않는다. *정규식 참고하기 따로 알아낸 정규식들 정리 \d => 모든 숫자 \x20 => 스페이스 \& => 리터럴로 변환 즉, &문자 사용 불가능 preg_match("/or|union|admin|\||\&|\d|-|\\\\|\x09|\x0b|\x0c|\x0d|\x20|\//",$t) 이렇게 하면 %09같은거 못
문장을 보면 index.php파일을 vi편집기로 편집하다가 전원이 나가버려 파일이 사라졌다는 얘기이다. vi편집 중에 예기치 않게 종료해버린 경우 생성되는 파일이 있는데 바로 swap 파일이다. swap 파일이 생성되었다면 .원본파일명.swp 형식으로 생성된다. 그래서 .index.php.swp을 url에 쳐주면 index.php의 swap 파일을 획득 할 수 있다. 파일을 열어보면 flag를 획득 할 수 있다. ??> $flag = "FLAG{what_about_the_nano_editor?}";
이 문제를 풀기 위해 알아야 할 점은 다음과 같다. - redis는 명령어를 이용해 메모리 데이터를 저장하는 파일의 저장 주기를 지정 가능하다. - 저장되는 파일의 경로와 이름, 그리고 데이터도 함꼐 설정 가능하다. - eval 명령어를 통해 lua 스크립트를 실행 시킬 수 있다. 먼저 데이터 저장이 되는 파일을 알기 위해 config.php에서 dir을 get해보면 {"dir":"\/var\/www\/html"} 임을 알 수 있다. html 경로에 있으니 냅두고 dbfilename을 redis.php로 set해준다. 그 후 데이터 저장 주기도 설정해줘야 하는데 계속 저장되는게 좋으니 save 60 0 으로 set해준다. (60초 이내에 0개 이상 데이터가 변경되면 저장한다.) 그 후 redis.php에..
처음 접속하면 hello.php로 접속되는 것을 볼 수 있다. 일단 flag를 찾아야 하니 flag.php로 접속해보면 별반 중요한 내용이 들어있지는 않다. 유추해 볼 수 있는점은 .php가 자동으로 붙는다는 점이고 flag.php의 내용을 파악해야 한다는 점이다. 버프스위트도 돌려보고 혼자 해보다 안돼서 찾아보니 php wrapper를 사용해야 한다고 한다. https://www.php.net/manual/en/wrappers.php PHP: Supported Protocols and Wrappers - Manual Even though their names will be the same, you can have more than one //memory or //temp stream open concu..
프레딕
'Web Hacking' 카테고리의 글 목록 (17 Page)