본문 바로가기

Security128

2016 Codegate Hack No-Jam(Web) https://www.youtube.com/watch?v=ere9HukUJQU 참고문서 : https://sektioneins.de/en/blog/15-08-03-php_challenge_2015_solution.html 2016. 3. 14.
PHP Object Injection 예전에 POI 관련 자료들 찾아보다가 국내에는 자세히 설명된 문서가 하나도 없는것 같아서 외국문서를 번역했었습니다.혼자볼 용도로 작성했던거라 해석이 틀린부분이 있을수도 있고 난해한 부분이 존재할수도 있습니다.원문을 참고하며 읽으시길 권장합니다. ( http://securitycafe.ro/2015/01/05/understanding-php-object-injection/ ) [ PHP Classes and Objects ]PHP의 class와 object는 굉장히 간단하다. 예를 들어 아래의 코드는 변수와 메소드를 정의한 클래스이다. 이것은 object를 생성하고 변수의 값을 출력하는 PrintVariable 함수를 호출한다. [ PHP Magic Methods ]PHP의 class는 magic func.. 2016. 2. 19.
main() 호출과정 1. fork()를 통해 process 복사2. execve() system call -> sys_execve() 호출 (User mode -> Kernel mode)3. do_execve() 동작 4. open_exec()로 file 정보를 읽어 적합한 binary handler 호출5. flush_old_exec()가 기존 프로세스 정보를 삭제하고 현재의 프로세스를 "current"로 설정함6. 새로운 프로세스에 사용할 Memory Layout 설정7. 동적링커를 로딩하여 elf포맷이면 load_elf_interp()가 동작하여 /lib/ld_linux.so.2를 로딩8. start_thread()로 elf_interpreter 실행9. sys_execve() 종료 (Kernel mode -> Use.. 2015. 10. 5.
New Error Based SQL Injection in MySQL >= 5.7.5 1. ST_LatFromGeoHash()mysql> select ST_LatFromGeoHash(version());-> ERROR 1411 (HY000): Incorrect geohash value: '5.7.6-community' for function ST_LATFROMGEOHASH 2. ST_LongFromGeoHash()mysql> select ST_LongFromGeoHash(version());-> ERROR 1411 (HY000): Incorrect geohash value: '5.7.6-community' for function ST_LONGFROMGEOHASH 3. ST_PointFromGeoHash()mysql> select ST_PointFromGeoHash(version(),0);.. 2015. 4. 5.
Natas 11 입력한 값에 따라 배경의 색이 바뀌는 구조다.소스를 확인해보자. 간단하게 분석해보자면 0. data[showpassword] == yes 면 flag 출력1. savaData($data) 를 통해 $defaultdata 를 json_encode -> xor_encrypt -> base64_encode 후 쿠키설정2. loadData($defaultdata) 를 통해 쿠키에 data가 있는지 확인한 후 data를 base64_decode -> xor_encrypt -> json_decode 후 $tempdata에 저장3. 정규식 확인 후 $mydata['showpassword'] 에 $tempdata['showpassword'] 를 $mydata['bgcolor'] 에 $tempdata['bgcolor'].. 2015. 3. 5.
Limit 구문에서의 SQL Injection rubiya의 LOS 를 풀다가 알게된 기법을 적으려 한다.이 기법은 사용자의 입력값이 아래와 같이 LIMIT 절 다음에 들어갈 시 사용할 수 있는 취약점이다. SELECT * FROM member WHERE id='guest' LIMIT {user input} 먼저 SELECT 의 문법에 대해 살펴보자. 이와 같이 LIMIT 이후에는 procedure analyse, into ~ 등을 쓸 수 있다.그 중 procedure analyse 를 이용한 에러기반, 블라인드 기법에 대해 설명한다.procedure analyse 는 보통 테이블에 들어있는 데이터를 분석하여 통계를 내주는 기능이다.해당 기능은 총 2개의 파라미터를 받는다. (http://dev.mysql.com/doc/refman/5.0/en/pr.. 2015. 2. 27.