본문 바로가기

Hack128

SQL Injection Cheat Sheet 주석문 Oracle - -- MSSQL - -- , /**/ MYSQL - # , -- , /**/ 데이터베이스 버전 정보 Oracle - SELECT banner FROM v$version - SELECT version FROM v$instance MSSQL - SELECT @@version MySQL - SELECT @@version 현재 데이터베이스 Oracle - SELECT instance_name FROM v$instance MSSQL - SELECT DB_NAME() MySQL - SELECT database() 테이블 목록 Oracle - SELECT table_name FROM all_tables MSSQL - SELECT table_name FROM information_schema.t.. 2021. 10. 2.
DOM Clobbering XSS 개요 DOM(Document Object Model)은 웹 페이지에 대한 인터페이스로 콘텐츠, 구조, 스타일을 읽고 조작할 수 있는 API를 제공합니다. 이러한 DOM은 W3C의 표준 객체 모델이며, 계층 구조로 구성됩니다. DOM은 원본 HTML과 구조가 비슷하지만 몇 가지 차이점이 있습니다. 1. 항상 유효한 HTML 형식입니다. DOM은 유효한 HTML 문서의 인터페이스로써, DOM을 생성하는 동안 브라우저는 유효하지 않은 HTML 코드를 올바르게 교정합니다. 아래의 코드는 필수 태그인 Hello World hacksms.tistory.com 참고 링크 DOM은 정확히 무엇일까? | WIT블로그 최근 잘못 이해하고 있었던 DOM에 대해 정확한 개념을 정리해 보고자 What, exactly, is t.. 2021. 9. 4.
Padding Oracle Attack 개요 Padding Oracle은 복호화 시스템에 암호문을 넣었을 때 복호화 된 문자열에 대한 Padding의 올바름 유무를 검사하는 암호 시스템이라고 볼 수 있습니다. Padding Oracle Attack은 Padding의 올바름 유무를 검사하는 과정을 악용하여 Intermediate Value(IV^Plain Text or Cipher Text[n]^Plain Text)를 획득하고 Cipher Text^termediate을 통해 평문을 알아내는 공격을 의미합니다. Block 암호 방식에서 사용되는 Padding이란? 먼저 해당 공격은 DES, 3DES, AES_CBC 모드와 같은 블록 암호화 기법에서 발견되며(확실치 않음), 각 블록은 일정한 크기를 가지고 있습니다. 즉, 블록의 크기가 8Byte의.. 2021. 9. 3.
[KVE-2021-0172,0329,0330] YoungCart 1Day 취약점 분석 (SQL Injection) KVE에 해당하는 취약점은 SQL Injection을 포함하여 여러 취약점으로 구성되어있지만, SQL Injeciotn에 대해서 먼저 분석을 진행하였습니다. 취약점 관련 정보 정보 내용 취약 버전 Young Cart 2021. 4. 19.
strtoupper를 이용한 XSS 공격 개요 rubiya님의 해당 게시글에 자세한 개념이 잘 정리되어 있습니다. 여기서는 실제 진단에 어떻게 활용할 수 있을지에 대한 부분만 중점적으로 다루겠습니다. strtoupper() – blog.rubiya.kr 해당 문서는 위의 트윗을 보고 추가적인 연구를 진행해 Theori 내부 세미나에서 발표한 결과물이다.(사장님 허락받고 올린다) (%C4%B1) 는 LATIN SMALL LETTER DOTLESS I를, (%E2%84%AA) KELVIN SIGN을, (%C5%BF) 는 LATI blog.rubiya.kr 실제 취약점 진단에 활용하는 방법 strtolower()와 같이 소문자로 치환해주는 함수의 경우 로 입력해주는 것만으로도 XSS 취약점이 발생하였습니다. 그런데 strtoupper()와 같은 함수.. 2021. 1. 6.
[KVE-2020-0164] YoungCart 1Day 취약점 분석 (SQL Injection) 개요 먼저 해당 취약점은 PG(전자지급 결제대행)사에서 데이터를 보냈는지 하드코딩된 IP로 확인하는 과정이 존재하기 때문에 실제 익스플로잇 가능성은 거의 없다고 생각이 됩니다. 취약점 관련 정보 정보 내용 취약 버전 Young Cart 2020. 9. 22.
[KVE-2020-0200,0202] YoungCart 1Day 취약점 분석 (Command Injection) 개요 해당 취약점은 unlink 인자로 사용되는 변수를 조작하여 data/dbconfig.php 파일을 삭제한 뒤, 재설치하는 과정에서 Command Injection으로 임의의 명령어를 실행시키는 취약점 인 것 같습니다. (제보자가 어떤식으로 익스플로잇 했을지는 알 수 없기 때문에 ㅎㅎ...) 취약점 관련 정보 정보 내용 취약 버전 Young Cart 2020. 9. 22.
[KVE-2020-0656] YoungCart 1Day 취약점 분석 (Command Injection) 개요 KISA 버그 바운티를 진행하면서 항상 찾는 취약점들만 찾게 되는 것 같고, 시야가 좁아지는 느낌이라 취약점 패치 내역을 보고 1Day 취약점 분석을 진행해보려고 합니다. 취약점 관련 정보 정보 내용 취약 버전 Young Cart mf_exec() -> exec() 와 같은 흐름을 따라 exec() 함수의 인자로 사용되었습니다. 위에서 설명한 흐름에 따라 중요한 코드들을 간략히 나열하면 아래와 같습니다. shop/kcp/pp_ax_hub.php $tran_cd = $_POST[ "tran_cd" ]; // 43Line, 처리 종류 if ( $tran_cd != "" ){ // 247Line $c_PayPlus->mf_do_tx( $trace_no, $g_conf_home_dir, $g_conf_si.. 2020. 9. 22.
Node js Prototype Pollution 개요 Node JS Prototype Pollution은 Prototype의 특성을 이용하여 다른 객체들의 값을 오염시키는 공격 기법입니다. 객체의 프로토타입은 객체.__proto__를 통하여 참조할 수 있으며, 객체의 프로타입이 변경되면 해당 객체와 같은 프로토타입을 가진 모든 객체들에 변경사항이 적용되게 됩니다. 또한, 객체의 프로토타입은 Object.prototype과 동일하기 때문에 프로토타입의 변조를 통하여 일반적인 객체들의 속성을 제어할 수 있게됩니다. 아래의 예제를 통해 obj 객체의 프로토타입에 polluted 속성을 1로 지정한 결과, obj와 같은 프로토타입을 갖고 있는 obj2에도 polluted 속성이 1로 설정된 것을 확인할 수 있습니다. const obj = {}; console.. 2020. 9. 22.