분류 전체보기
FC3 evil_wizard - dark_stone : GOT overwrite / ROP ★ ( pop-pop-ret gadget )
FC3 evil_wizard - dark_stone : GOT overwrite / ROP ★ ( pop-pop-ret gadget )
2017.06.22FC3의 마지막 문제.GOT overwrite / RemoteBOF2017/05/08 - [System/Practice] - FC3 dark_eyes - hell_fire : remoteBOF, GOT overwrite, mprotect ★ 와 달리 메모리 초기화 때문에 실행되면서 무조건 fault가 발생해 client로 응답이 돌아오지 않는다.그러나 제대로 리턴해서 exploit하게 되면 exec*하면서 fault가 발생하지 않으니까 위와 같이 /bin/my-pass의 실행 결과를 소켓으로 받아볼 수 있을 듯. ```bash[evil_wizard@Fedora_1stFloor ~]$ python -c 'print "b"*268+"\x60\x65\x74\x00"' | nc localhost 8888dark..
FC3 hell_fire - evil_wizard
FC3 hell_fire - evil_wizard
2017.06.17GOT overwrite / local stdin buffer를 사용할 수 없어 문자열을 삽입할 수는 없지만local이니까 symlink로 메모리에 있는 값을 parameter로 사용할 수 있을 것 같다.파라미터를 삽입할 수 없어 메모리에 있는 값을 활용해야 한다는 점만 제외하면 이전 문제와 비슷하게 해결할 수 있을 듯.그런데, 그냥 삽입하면 연쇄적 ret으로 내려간다 해도 execl Addr을 넣을 때 \x00이 들어가 그 아래가 모두 \x00으로 초기화되기 때문에 메모리에 있던 파라미터도 \x00으로 초기화된다.시도해볼 수 있는 방법은 fake ebp, GOT overwrite 정도인 듯. fake ebpfake ebp도 가능할 것 같아서 일단 fake ebp를 시도했다.``c execl()``을 사..
웹서버 / WAS 정리
웹서버 / WAS 정리
2017.06.17웹서버와 WAS의 차이? Web Server 정적 컨텐츠를 반환하는 기능 서버 사이드 프로세싱이 필요 없는 단순 html, css, js같은 것. 예) Apache, IIS, nginx Web Container 서버 사이드 프로세싱이 필요한 동적 페이지를 resolve하는 기능 예를 들면 JSP같은 것. 이렇게 만든 페이지를 반환해주지는 못함. WAS WAS = Web Server + Web Container 즉, 동적 컨텐츠 resolve & 반환하는 기능 예) Tomcat WAS에 웹서버가 내장되어 있는데, 별도로 웹서버를 따로 두는 이유? 아래와 같은 이유로 보통 앞단에 apache나 nginx같은 Web Server를 별도로 두고 reverse proxy를 통해 Tomcat으로 forwarding..
[C++] Namespace 네임스페이스
[C++] Namespace 네임스페이스
2017.06.15여러 명이 함께 개발에 참여할 때, UML을 작성하는 등 체계적으로 접근해서 시작부터 프로젝트를 잘 모듈화해서 구성한다면함수나 변수, 클래스 이름이 충돌 날 가능성이 적지만 보통 일단 시작부터 하고 보기 때문에 이름이 충돌하는 경우가 있다. 네임스페이스는 이름을 묶어주는 그룹이라고 생각하면 된다.user1과 user2가 모두 `` funcA``를 정의했을 때, 각각이 다른 namespace에 속한다면 namespace를 명시하는 것으로 둘을 구분할 수 있기 때문에 그대로 `` funcA``를 사용할 수 있는 것이다. naming convention```cppCompanyName.TechnologyName[.Feature][.Design]```대소문자도 위처럼 쓰면 된다. c++에서의 namespace``..
A Multi-view Context-aware Approach to Android Malware Detection and Malicious Code Localization 정리
A Multi-view Context-aware Approach to Android Malware Detection and Malicious Code Localization 정리
2017.06.15A Multi-view Context-aware Approach to Android Malware Detection and Malicious Code Localization17.04. 논문. ANN이 아니라 SVM을 사용했다. 그래서 읽다 중단함. 읽은 곳 까지만 정리.classification에 SVM을 사용했지만 악성코드 검출에서 어떤 flow를 고려해야 하는지와 각 PRG가 어떤 식으로 나타나고, 어떤 장점과 한계를 가지고 있는지 대략적으로 파악할 수 있었다. Abstract현재 Android malware detection approaches에 사용하는 방식은 여러가지가 있다. 정확도를 위해 머신 러닝 classifier와 연결해서 사용하기도 하며, 각각의 방식은 앱의 행위에 대한 unique s..
[mysql] 일반적인 SQL
[mysql] 일반적인 SQL
2017.06.11쿼리 테스트 (MySQL을 쓰는건지 모르겠지만 간단한 쿼리는 어차피 공통 문법이라) https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all MySQL String Functions https://dev.mysql.com/doc/refman/5.7/en/string-functions.html CREATE TABLE | VIEW | DOMAIN CREATE TABLE Syntax & Options 자주 사용하는 옵션만 포함하면 이렇다. ```sql CREATE TABLE tbl_name( col_name1 data_type [NOT NULL] [AUTO_INCREMENT] [PRIMARY KEY], user_id BIGINT UNSIGNED ..
[mysql] 초기 설정 및 계정, DB
[mysql] 초기 설정 및 계정, DB
2017.06.11```bashsudo service mysql startsudo mysql 또는 mysql -u root [-p] [db_name]```ERROR 1045 (28000): Access denied for user 뜨면서 안될 때는 패스워드를 설정해준다.```bashmysqladmin -u root -p password``` SHOW자주 쓰는 ``sql SHOW`` 명령어```sqlhelp show; SHOW DATABASES;SHOW TABLES;SHOW FIELDS FROM tbl_name; -- Type | Null | Key | Default | Extra``` SET PASSWORD```sqlSET PASSWORD FOR user@host = PASSWORD('pw');````` root@loca..
[PHP] 함수, 클래스, 객체, 상속, 트레이트
[PHP] 함수, 클래스, 객체, 상속, 트레이트
2017.06.10함수내부 함수를 사용할 수 있다. 클로저나 콜백에 사용할 수 있는 익명함수를 정의할 수 있다. 기본적으로 Call by value지만 선언 시``&``를 붙이면 Call by reference로 동작한다. 선언 시에만 ``&``를 붙이고, 호출 시에는 그냥 호출한다. 함수나 메소드 앞에 ``&``를 붙일 수 있다. ``php return [v1, v2]`` 배열을 만들면서 리턴할 수 있다. Parameter를 정의할 때 Type을 적어주면, 받을 수 있는 Type을 제한할 수 있다. ( Type Hinting ) 객체기본적으로 자바와 흡사한데 ``php trait``가 추가되었다. 클래스 외부에서 클래스의 ``php static, constant``에 접근할 때,클래스 내부에서 상속 계층 상의 프로퍼티나..
[PHP] form tag, GET POST / cookie, session
[PHP] form tag, GET POST / cookie, session
2017.06.10==CLIENT==```html ```==SERVER== ( ?user=default_value )```php````` $_GET[user]``은 get method로 넘어온 query string에서 `` user``라는 key에 대응되는 `` value``를 의미한다. 즉 여기서는 `` default_value``가 된다.GET이든 POST든 관계없이 취급하려면 `` $_REQUEST``를 사용한다.어떤 `` key=value``쌍이 존재하는지는 ``php isset()``으로 확인한다. 배열로 받기checkbox와 listbox는 ``html ``로 지정하고 배열로 받는다. ``php $_POST["key"][idx]`````phpif (isset($_REQUEST["check"])){ foreac..
[HTML] form tag, input 태그 속성
[HTML] form tag, input 태그 속성
2017.06.10input 태그checkbox와 listbox는 ``html ``로 지정하면 서버에서 배열로 받을 수 있다.HTML5에서 input에 type이 많이 추가되었으니 참고할 것.(tel, email, url, date, ...) 이를 사용하면 좀 더 semantic하게 나타낼 수 있다.HTML5에서 input에 placeholder 등의 attribute가 추가되었으니 참고. 아무것도 입력 안하는 상태를 방지하려면 `` required`` 추가. 다른 길이 제한 속성을 쓰더라도, 별개로 써줘야 함.입력되는 문자의 최대 길이를 제한하려면 `` maxlength``입력되는 문자의 최소 길이를 제한하려면 `` maxlength``입력되는 문자의 패턴을 제한하려면 `` pattern``(정규표현식) - 근데 max..
[PHP] HTTP response header 수정 ( redirect, Download Dialog )
[PHP] HTTP response header 수정 ( redirect, Download Dialog )
2017.06.08response headerheader() - Send raw HTTP header```phpvoid header( string $string [, bool $replace = true [, int $http_response_code ]] )`````php header()``를 사용하면 HTTP response header를 직접 조작할 수 있다.``php header()``는 반드시 어떤 output을 보내는 코드 이전에 위치해 있어야 한다. empty lines나 spaces가 있어도 안되니 주의.이것저것 해봤는데 ``php header()``앞에 HTML tag나 어떤 output을 출력하는 코드가 있어도 제대로 동작하는 환경도 있는 듯. ```php``` redirectionHTTP redirec..
[PHP] Program execution, Shell escape
[PHP] Program execution, Shell escape
2017.06.07실행 연산자 `command`안전모드 상태이거나, ``php shell_exec()``가 무효일 때는 사용할 수 없다.```php$filelist = `ls -al`; // 명령을 실행. 반환값은 실행 결과 전체.echo "$filelist";``` Program execution 함수 목록안전모드 상태일 경우 ``safe_mode_exec_dir``에 지정되어 있는 디렉토리에 위치해 있는 경우에만 실행할 수 있다.``system`` — Execute an external program and display the output 명령을 실행하고 자체적으로 실행 결과 전체를 출력. 리턴값은 실행 결과의 마지막 한 행.``passthru`` — Execute an external program and disp..