strcmp HTML 삽입 미리보기할 수 없는 소스 Vulnerability HTML 삽입 미리보기할 수 없는 소스 문제의 소스코드에서 strcmp를 이용하여 password를 비교하는 것을 알 수 있다. 비교 연산도 느슨한 비교 연산자를 사용하고 있어서 해당 부분이 취약한 부분이 될 것이다. else if(isset($_POST['password'])){ sleep(1); // do not brute force! if (strcmp($_POST['password'], $password) == 0) { echo "Congratulations! Flag is " . $FLAG .""; exit(); } else { echo "Wrong password.."; } 0을 비교하므로 아마 NULL값이랑 비교되어..
md5 password 원래는 계속 존댓말로 썼는데 그냥 반말로 쓸게 반말로 쓰는 게 익숙해져서 안 되겠다. HTML 삽입 미리보기할 수 없는 소스 Vulnerability md5의 인코딩 방식을 사용하였을 때 SQLI가 일어날 수 있는 취약점이 있다. 바로 아래의 함수 때문에 가능해진다. 이게 php도 가능하고 python에서의 md5().digest()함수를 사용하여도 동일한 값이 나다. md5( string $str [, bool $raw_output = FALSE ] ) 위의 함수에서 문제 되는 부분은 $raw_output 때문이다. False일 경우에는 16진수 형태인 문자로 나와서 취약하지 않지만 True일 때가 문제가 된다. php의 경우에 True일 경우 digest로 출력이 되는데 hex..
command-injection-1 HTML 삽입 미리보기할 수 없는 소스 Vulnerability HTML 삽입 미리보기할 수 없는 소스 해당 문제는 아래의 코드에서 취약점이 발생한다. cmd변수에 사용자 입력값이 들어오는 필터링 없이 그대로 사용하여 Injection이 발생된다. output = subprocess.check_output(['/bin/sh', '-c', cmd], timeout=5) Exploit HTML 삽입 미리보기할 수 없는 소스 위의 취약점을 토대로 바로 Injection을 시도하게 되면 형식에 맞춰서 입력하라고 나온다. 이는 client단에서 Input태그의 속성 값에 의해 필터링되는 것인데 이는 개발자 도구를 이용하여 해당 속성만 없애주면 입력할 수 있다. pattern="..
Mango HTML 삽입 미리보기할 수 없는 소스 Vulnerability HTML 삽입 미리보기할 수 없는 소스 웹 사이트로 들어가보면 해당 문구가 보인다. 그대로 URL에 넣어보면 "guest"가 출력이 됩니다. 해당되는 값을 찾는다면 그uid를 보여주는데 소스코드를 보시면 const BAN = ['admin', 'dh', 'admi'];로 필터링을 하고 있습니다. /?login?uid[$ne]=guest&upw[$regex]="^alpha+num" 위와 같은 방식으로 Injection을 수행해도 동작하지만 문제는 uid가 "guest" "admin" 뿐만 아니라 "testuser" "dreamhack" 도 있다는 것 입니다. "$ne" 말고도 uid에 $regex를 사용해 uid[$regex]=ad..
No SQL Inection HTML 삽입 미리보기할 수 없는 소스 No SQL Inection HTML 삽입 미리보기할 수 없는 소스 No SQL Injection도 SQL Inection과 유사하게 쿼리에 대한 제대로 된 검증이 없어서 발생됩니다. MongoDB의 같은 경우 Object, Array 타입을 사용할 수 있어서 `$eq` `$ne` 와 같은 연산자를 사용할 수 있습니다. http://victim/?data=1234 -> data : 1234 http://victim/?data[]=array -> data:['array'] http://victim/?data[]=1234&data[]=array -> data:['1234','array'] http://victim/?data['username..
No SQL Database HTML 삽입 미리보기할 수 없는 소스 비 관계형 데이터베이스 HTML 삽입 미리보기할 수 없는 소스 비 관계형 데이터베이스는 RDBMS와 다르게 SQL을 사용하지 않습니다. 또한 저장하는 방식이 테이블의 row, column 형태로 저장하지 않고 Collection , Document , Key : Value 형태로 데이터를 저장합니다. 비관계형 데이터베이스의 종류는 MongoDB, Redis , CouchDB.. 등이 있습니다. 일단 MongoDB, Reids , CouchDB의 문법을 알아보도록 하겠습니다. MongoDB HTML 삽입 미리보기할 수 없는 소스 MongoDB는 Document형태로 데이터를 저장합니다. 데이터의 형식이 JSON이라 쿼리를 질의할 때도 JS..