본문 바로가기

분류 전체보기479

[python] BeautifulSoup 모듈 정리 [BeautifulSoup] BeautifulSoup 설치- cmd[관리자 권한] 에서 pip install beautifulsoup4라고 입력해서 설치를 하면 된다.- 만약 설치가 안된다면 pip 환경변수 설정이 안돼있는 것이므로 환경변수를 설정하자.[python]환경변수 설정 BeautifulSoup 설치 확인- cmd나 터미널에서 pip list를 하면 설치되어 있는 모든 모듈을 확인 할 수 있다. BeautifulSoup 사용 방법 - 맨 윗부분에 import 를 해주자. from bs4 import BeautifulSoup ... 이제 사용하면 된다.. ㅎ 2020. 1. 31.
[webhacking.kr] old-19(150) 풀이 [old-19] base64, md5, url인코딩 - 별로 볼게 없다.. 소스 코드를 보자. - 이번엔 코드도 별로 볼게 없었다. - 제출을 누르니 나는 admin이 아니라고 한다.. - 한번 guest로 로그인을 해보니 쿠키가 새롭게 생겼다 - 쿠키값의 끝에 %3D가 신경 쓰이는데, 이 %3D는 =이다.- 즉, 쿠키의 값은 base64로 인코딩 되어있다.- 콘솔창을 통하여 디코딩을 해보았는데 잘 모르겠다. - a로 로그인하자 쿠키의 userid가 바꼈다. - 이 값을 디코딩하면 32글자가 나온다. 이것은 md5의 인코딩 방식 - 위의 값을 md5복호화 하면 a 가 나온다.- guest에 있던 문자들을 32글자로 나눠서 디코딩을 해보자.- 글자가 32*5로 잘 맞았고 디코딩 결과 guest 문자였다.-.. 2020. 1. 31.
[webhacking.kr] old-12(250) 풀이 [old-12] js난독화, js 기초 - javascript challenge 라고 써져있다. - 페이지 소스 코드를 보니 script 태그 안에 이모티콘들이 많다..- 이 난독화 방법은 aaencode 방식이다.. (일본의 개발자가 만들었다고 한다.)* http://utf-8.jp/public/aaencode.html 난독화 사이트* https://cat-in-136.github.io/2010/12/aadecode-decode-encoded-as-aaencode.html 복호화 사이트- 복호화 사이트에 저 이모티콘들을 넣어도 되고, 맨 끝의 ('_'); 부분을 지우고 콘솔창에 입력하면 코드가 출력된다. - 복호화한 코드이다.- ck는 document.URL.substr(document.URL.inde.. 2020. 1. 31.
[webhacking.kr] old-11(300) 풀이 [old-11] _ 정규표현식 - 들어가면 Wrong이 뜬다. view-source를 눌러 코드를 보자. - $pat에 저 문자열을 넣은 뒤 밑으 preg_match로 일치하는지 확인한다.- [1-3] : 1~3중에 아무 문자 하나- [a-f] : a~f중에 아무 문자 하나- {5} : 앞의 문자를 5번 반복 ([a-f]{5} : a~f의 문자들을 5번 반복)- _ : 그냥 문자 _- * : 문자 0번이상 반복- $_SERVER[REMOTE_ADDR] : 자신의 외부 ip 주소- \t : tap(URL 인코딩으로 %09) - 종합 해보면 자신의 ip주소가 127.0.0.1의 경우 1aaaaa_127.0.0.1%09p%09a%09s%09s 가 된다. 2020. 1. 31.
[webhacking.kr] old-10(250) 풀이 [old-10] html 이해 * 구글 크롬에서는 문제가 안풀립니다. (internet explorer 사용 권장) - 들어가면 O가 있고 오른쪽에 Goal이 있다. - 코드를 보면 O에 마우스를 올리면 yOu로 변경되고, O를 클릭하면 1px 오른쪽으로 이동한다.- 그리고 1600px 만큼 움직이면 문제가 풀리게 된다. - internet explorer로 다시 들어가서 빨간 네모 부분을 1600으로 변경하고 O를 누르면 클리어 2020. 1. 31.
[webhacking.kr] old-06(100) 풀이 [old-06] base_64 - ID와 PW가 써있다. view-source를 통해 코드를 보자. - 주목해서 봐야할 부분은 아래쪽이다.- cookie로 user와 password를 받고 20번 디코딩을 한 뒤 id=admin, password=nimda 이면 풀리게 된다.- base64로 인코딩 할 경우 특수문자는 생기지 않으므로 str_replace는 무시해도 된다. (=패딩만 생긴다) - EditThisCookie로 보면 원래는 user와 password가 있을텐데 PHPSESSID 빼고 나머지를 삭제한다. - 콘솔창을 통해 user, password쿠키 값을 base64로 20번 인코딩 한 뒤 설정 해주면 문제가 풀리게 된다.- 기존의 user, password 쿠키를 삭제하지 않을경우 쿠키값이.. 2020. 1. 31.
[webhacking.kr] old-04(300) 풀이 [old-04] 레인보우 테이블 - 들어가면 어떠한 값이 써져있고, Password를 입력하는 칸이 있다. - php 부분을 보면 brute force 공격을 막기 위해 sleep(1)함수가 적용되어 있고,- 10000000~99999999+salt_for_you 라는 문구를 $_SESSION['chall4']에 저장하고,- 그것을 sha1로 500번 암호화 하여 출력한다.- 우리가 알아야하는것은 sha1로 암호화 하기 전의 문자열이다.- 이 문제를 풀기위해서는 레인보우 테이블이라는 것이 필요하다.- sha1은 단방향 암호화 방식이다. (해시값에서 평문값을 못찾는다)- 단방향 암호화를 복호화 하려면 해시값끼리 비교해보는 것이 유일하다.- 즉, 레인보우 테이블이란 해시값에서 평문을 추출하기 위한 목적으로 .. 2020. 1. 31.
[webhacking.kr] old-17(100) 풀이 [old-17] js 기초 - 페이지 소스 코드를 보자. - 내가 form 태그를 통해 입력한 값과 unlock 값이 같으면 풀리게 된다. - 콘솔창을 통해 결과값을 alert를 통해 출력해 주자.- 7809297.1을 form태그를 통해서 전송하면 url이 https://webhacking.kr/challenge/js-4/?780929.71로 바뀌면서 Clear! 2020. 1. 30.
[webhacking.kr] old-16(100) 풀이 [old-16] js 기초 - 들어가면 노란 별이 있다. - script 부분을 보면 키를 누르면 mv(event.keyCode)에 의해 입력한 키의 값이 mv함수로 전해진다.- mv 함수를 보면 cd가 124일 때, 문제가 풀리게 된다.- 124는 아스키 코드로 | - | 를 입력하면 문제가 풀린다. 2020. 1. 30.
[webhacking.kr] old-15(50) 풀이 [old-15] js - 들어가자 마자 Access_Denied 가 뜨며 webhacking.kr로 돌아간다. - request모듈을 통해 페이지 파싱을 해보았다. - alert("Access_Denied")라 뜨고 location.href를 통해 webhacking.kr로 돌아가게 된다.- flag는 ?getFlag로 들어가면 있는것 같다. - https://webhacking.kr/challenge/js-2/?getFlag를 입력하면 문제가 풀린다. 2020. 1. 30.
[webhacking.kr] old-14(100) 풀이 [old-14] js기초 - 바로 페이지 소스 부터 보자. - form 부분에서 check를 누르면 ck() 함수로 이동한다.- script를 보면 ck() 함수가 있고 ul 값과 내가 입력한 값이 맞으면 풀리게 된다. - console 창을 통해 자바스크립트 구문을 넣어주면 ul 값이 나온다.- 540을 입력하면 url이 https://webhacking.kr/challenge/js-1/?291600로 바뀌며 Clear! 2020. 1. 30.
[webhacking.kr] old-33(200) 풀이 [old-33] get, post, cookie 전송 - view-source를 눌러 소스 코드를 확인하자.- 뭔가 흰색 바탕이라 맘에 든다 ㅎ... - GET 방식으로 hehe를 보내면 된다. - get=hehe 를 url에 넣어 입력을 해주면 Next가 뜬다 (이때 까지만 해도 문제의 갯수를 몰랐다..) - 계속해서 view-source를 눌러보자. - 이번에는 POST 방식으로 hehe와 hehe2를 전송해주면 된다. - Edit as HTML 기능을 이용하여 form 태그를 작성 후 POST 방식으로 전송을 해주자. - Challenge 33-2 Clear ! - Next 를 누르자 - 계속해서 view-source를 누른다. - 이번에는 GET 방식으로 내 아이피 주소를 전송하면 된다.- 구글이.. 2020. 1. 26.
[webhacking.kr] old-26(100) 풀이 [old-26] urldecode 함수 활용 - view-source를 눌러 소스 코드를 확인하자. - admin을 preg_match를 통해서 비교를 한 후* preg_match에서 대소문자 구분이 없기 때문에 대문자를 이용하여 우회 가능하다.* 대소문자 구분을 하기 위해서는 preg_match("/admin/i",$_GET['id'])와 같이 i 옵션을 넣어 주어야 한다.- urldecode를 한 번 거치고 $_GET['id'] 와 admin 이 같으면 풀린다. - 처음 생각한 방법이다.. - urldecode 함수가 있으므로 a 를 %61로 우회하여 넣으면 될 것이라 생각했다..- 여기서의 문제점은 url로 id=%61dmin을 보낼때 한번 url decode를 거친다는 점이다.- 즉, $_GET[.. 2020. 1. 25.
[Linux] Ubuntu 18.04.3 초기 설정 [Ubuntu 초기 설정] sudo apt-get update && sudo apt-get upgrade -y - 기본 프로그램 업데이트 및 업그레이드 sudo apt-get install vim - vim 설치 (vim 설정) sudo apt-get install net-tools- ifconfig 명령어 설치 (ip addr 로 대체 가능) 2020. 1. 25.
[webhacking.kr] old-25(150) 풀이 [old-25] LFI 취약점 - 문제 25번에 들어가면 file 인자값으로 hello가 써져있다.- 밑에 textarea에는 hello world가 써져있다. - file에 flag를 쓰자 FLAG is in the code라는 글이 뜬다. - file에 index를 쓰자 아무 것도 없는 빈 칸이 뜬다. - file에 다른 값들을 넣으면 아무 것도 뜨지 않는다.- file에 flag.php나 hello.php를 입력해도 아무 것도 뜨지 않는다. - 위의 결과값으로 보아 file에 file명을 입력하면 자동으로 php가 붙어 include 되는 것 같다.- LFI 취약점을 이용하여 file에 구문을 넣어보자LFI(Local File Include) : include 구문을 통해 서버의 페이지를 inclu.. 2020. 1. 24.