본문 바로가기

Webhaking27

[웹 해킹] PHP 취약점 공격 환경: 칼리 리눅스, VirtuaBox, metasploit 메타스플로잇에서 ifconfig 명령어를 통해 메타스플로잇의 ip 주소를 확인하였다. 이 ip 주소를 갖 고 칼리 리눅스에서 인터넷 창에 메타스플로잇 ip 주소를 입력한다. 이것은 메타스플로잇을 브라 우저로 접속한 것이다. ?-s를 추가하면 php 소스코드가 보인다. 취약점이다. CGI(Common Gateway Interface): 웹 서버와 외부 프로그램을 연결해주는 표준화된 프로토콜 - 웹 서버가 처리할 수 없는 정보가 웹 서버로 요청되면, 그 정보를 처리할 수 있는 외부 프로 그램을 호출하고, 외부 프로그램은 요청 받은 프로그램 파일을 읽어 HTML으로 변홖하는 단계를 거치고, 그 결과를 웹 서버가 받아와 웹 브라우저에게 전송하는 형태 .. 2020. 11. 19.
메타스플로잇(Metasploit) 기본 사용법 환경: 칼리 리눅스, Oracle VM VirtualBox - DB에 연결하는 방법 - msfdb init: db를 초기화 - 메타 디스플로잇 실행 - 현재 버전과 모듈의 개수들을 알 수 있다. Exploit 실제로 취약점을 공격하여 해킹을 시도하는 공 격 모듈 Auxiliary 보조모듈, 두로 스캐닝을 위한 용도로 사용 Payload를 실행하지 않음 Payload Exploit이 성공되면 실행함 Encoders Payload를 타겟까지 제대로 전달하기 위한 모 듈 Nops nop이라고 하는 어셈블리 명령어를 이용해서 payload 크기를 일정하게 유지시켜주는 모듈 - db status: 데이터베이스가 잘 연결이 되었는지 확인하는 명령어 - help: 각종 명령어에 대한 설명 - ipconfig /all.. 2020. 11. 11.
[Webhaking.kr] old 22번 22번 문제에 들어가자마자 나오는 화면이다. 회원가입과 로그인 버튼이 있고 username과 password를 입력하는 칸이 존재한다. 아래 mission을 보니 admin으로 로그인을 해야 할 것 같고 데이터베이스의 column이 id와 pw가 있다. quest, quest로 로그인을 시도하니 Login Fail이 나온다. Test와 test로 회원가입을 시도하였다. 계정을 생성하였다. 이로써 DB에 우리가 입력한 ID와 PW를 넣는다는 것을 알 수 있다. 테스트 계정으로 로그인을 시도하였더니 password의 hash 값을 보여준다. admin으로 로그인을 시도하였지만 실패하였다. Admin’ or ‘1’=’1을 username과 password에 넣어서 구문 테스트를 하였다. 결과는 Wrong pa.. 2020. 11. 9.
[Webhaking.kr] old 9번 9번 문제에 들어가니 패스워드를 입력하는 칸이 나왔다. 아무래도 패스워드를 알아내는 것이 문제인 것 같다. 1, 2, 3을 차례대로 눌러보았다. 1을 눌렀더니 1,2,3이 있던 자리에 Apple이 뜨고 url에 get 방식으로 no=1이 전송된다. 2를 눌렀더니 apple과 같이 1,2,3이 있던 자리에 banana가 뜨고 url에 apple은 no=1이 전송되었지만 banana에서는 get방식으로 no=2가 전송된 것을 볼 수 있다. 3을 눌렀더니 다른 번호들과 같이 no=3이 전송되었지만 apple, banana 같은 단어가 아닌 Secret이 출력되고 hint와 column이 주어진다. Column이 id와 no만 있는 것을 보면 apple과 banana는 id의 값이고 secret의 id 값을 나.. 2020. 11. 9.
[Webhaking.kr] old 27번 old 27번에 들어갔더니 위와 같은 화면이 나왔다. 18번 문제와 같이 간단하게 sql injection이라는 것을 알 수 있엇다. view-source에서 코드에 들어가 중요한 부분을 확인해보았다. 여기서 보면 id 값이 admin이면 풀리는 문제인 거 같다. 위의 코드에서 쿼리문 부분을 보면 id가 guest로 지정되어 있는 것을 볼 수 있다. 또한, 주석으로 admin's no=2라고 되어있다. 저 주석이 힌트를 알려주고 있다. 아무 숫자나 넣어보니 quest라고 뜬다. 힌트로 나온 2를 넣어보니 querry error라는 문장이 뜬다. 주석에서 admin의 no 값이 2라고 했기 때문에 쿼리문을 조작해서 no의 값을 2로 만들 수 있을 것 같다. 0) or no like 2 preg_match(.. 2020. 11. 5.
[Webhaking.kr] old 18번 처음 18번 문제에 들어가면 나오는 화면이다. 제출 버튼과 RESULT 부분이 보이고 소스 코드를 확인 할 수 있는 것을 볼 수 있다. 먼저 문제를 풀기 위해 소스 코드를 확인했다. 긴 소스코드 중 가장 유심히 봐야 할 부분을 캡처하였다. 눈에 띄는 코드 부분이다. 첫 줄을 보면 'no'를 GET 형식으로 받아야 소스가 실행되는 것을 볼 수 있다. 두 번째 preg-match 부분을 보면 no를 입력 받고 값에 공백, /, /, \(,\), \t, |, &가 있을 경우, exit에 의해 함수가 실행되지 않고 종료된다는 것을 알 수 있다. 그 다음은 mysql 데이터베이스에서 id가 quest이고 입력받은 no 값과 일치하는 id를 검색하여 q라는 변수에 저장한다는 것을 알 수 있다. 소스코드에서 주석으로.. 2020. 11. 5.