Web Hacking

웹셸을 업로드하면 되는 문제이다. 예전에 리눅스에서 사용하던 webshell.php파일이 있어서 올려봤더니 올바르지 않은 파일 형식이라고 떴다. 그러면 .php를 .PHP로 바꿔서 해봤는데 리눅스에선 업로드가 되었다! 근데 윈도우에서 업로드하면 안돼서 찾아보니 원래 안되는게 맞다.. 웬만하면 정석으로 문제를 푸는게 맞기에 버프스위트를 이용해서 풀어보기로 했다. flag를 읽는 웹셸 파일을 만들고 버프스위트에서 image/png 파일로 형식을 숨겨서 보내줬다. 그 후 아래와같은 화면을 얻을 수 있는데 url을 클릭해보면 flag를 획득했다!
readme 파일을 클릭하면 access denied가 뜬다 대충 readme 파일에 flag가 있는거 같다. hi 파일에는 hello~ 라는 문자만 있고 해서 search에 hello를 쳐봤는데 guest 테이블 밖에 안나왔다. 그래서 flag{ 도 쳐봤는데 admin테이블만 나왔다. 그럼 flag{ 뒤의 문자열을 무차별 대입해서 찾아내기만 하면 된다! 버프스위트의 인트루더 기능을 사용해보고 싶었는데 시간이 너무 오래 걸리고 사용법도 익숙치 않아서 파이썬으로 넘어왔다. from requests import post host = "https://webhacking.kr/challenge/web-33/" password ="flag{" str = "acdefghiklmnostuy_" isStr = Fals..
view-source 코드의 길이가 길다. 대충 살펴보면은 flag변수에 flag정보를 저장하고 time에 따라 파일 명을 정한 후 파일을 업로드 한다. 이때, 파일 이름이 있으면은 파일에 서버 ip를 작성해서 저장한다. 그리고 socket으로 7777번 포트에다가 flag가 저장된 파일을 올린다. 7777번 포트를 내부 포트로 보내기 위해 포트포워딩을 해줬다. 그리고 원래라면 윈도우에서 netcat을 사용해 서버를 열어야 하지만 무슨일인지 윈도우에서 netcat이 잘 작동되지 않아서 리눅스 가상머신을 통해 진행해 주었다. nc명령어를 이용해 7777번 포트를 열어두고 버프스위트 프록시 히스토리에서 파일 업로드 패킷을 리피터로 가져온 다음 파일 명을 시간에 맞춰 보내주면 nc로 열어둔 7777번 포트에 ..
저 스크립트를 주입시키면 풀리는 문제인듯 하다. code에 스크립트를 고대로 넣으면 no hack이라 뜨면서 필터링 된것을 볼 수 있는데 어떤필터링인지 몰라 막 넣어봤다. 그런데 문자는 두글자 이상 이어지면 필터링 되는 것 같았다. 그래서 문자가 이어지지 않게 null문자를 끼어넣어서 시도해봤다. 웹에서 null문자는 %00 이다. index.php?code=a%00l%00e%00r%00t%00(1); 이렇게 문자들 사이에 막 끼워넣으니 풀리게 되었다.
"; echo "view-source"; $_GET['id'] = addslashes($_GET['id']); if(preg_match("/\(|\)|select|from|,|by|\./i",$_GET['id'])) exit("Access Denied"); if(strlen($_GET['id'])>15) exit("Access Denied"); $result = mysqli_fetch_array(mysqli_query($db,"select {$_GET['id']} from chall61 order by id desc limit 1")); echo "{$result['id']}"; if($result['id'] == "admin") solve(61); echo "";?> result의 id가..
프레딕
'Web Hacking' 카테고리의 글 목록 (16 Page)