반응형

정보보안 44

정보보안) OWASP TOP 10 - 2017

OWASP TOP 10 - 2017 OWASP(The Open Web Application Security Project)는 오픈소스 웹 애플리케이션 보안 프로젝트이다. 주로 웹에 관한 정보노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하며, 10대 웹 애플리케이션의 취약점 (OWASP TOP 10)을 발표했다. OWASP TOP 10은 웹 애플리케이션 취약점 중에서 빈도가 많이 발생하고, 보안상 영향을 크게 줄 수 있는 것들 10가지를 선정하여 3년 단위로 발표되었고, 문서를 공개하였다. 가장 최근 발표는 2017년이다. TOP 10 - 2013 과 변경된 점 * A4:2017 - XML 외부 개체 (XXE) [신규] * A5:2017 - 취약한 접근 통제 [2013:A4와 A7과 통합] * A..

IT Security 2020.02.28

Lord of Sqlinjection - 6번 DARKELF

Lord of Sqlinjection - 6번 darkelf 6번 문제는 정규표현식으로 or, and 를 필터링 합니다. => if(pref_match('/or|and/i', $_GET[pw])) exit("HeHe"); SQL Injection 공격시 공백 문자 필터링 우회 방법 and => %26&26, && or => %7c%7c, || * 크롬 테스트 시, && 문자가 적용이 안되는 경우가 있습니다. 이때 %26%26으로 테스트 하시면 정상 적용가능합니다. 대체문자를 이용해서 or, and 필터링을 우회하면 됩니다. *** 정답 *** 더보기 정답 : ?pw=' || id='admin'%23

IT Security 2019.11.27

Lord of Sqlinjection - 5번 WOLFMAN

Lord of Sqlinjection - 5번 문제 WOLFMAN 5번 문제는 공백을 필터링하는 정규표현식이 추가되었습니다. if(preg_match('\ \i', $_GET[pw])) exit("No whitespace ~_~"); 공백 필터링 정규표현식을 우회하여 Sql 구문을 완성시켜야합니다. SQL Injection 공격시 공백 문자 필터링 우회 방법 1. Tab : %09 - ?pw='%09or%09id='admin' 2. Line Feed (\n): %0a - ?pw='%0aor%0aid='admin' 3. Carrage Return(\r) : %0d - ?pw='%0dor%0did='admin' 4. 주석 : /**/ - ?pw='/**/or/**/id='admin' 5. 괄호 : () - ..

IT Security 2019.11.24

Lord of Sqlinjection - 4번 ORC

lord of sqlinjection 4번 ORC pw 파라미터 값을 찾아야 풀 수 있는 문제입니다. Hello admin라는 문구가 SQL 쿼리에 참/거짓에 따라 출력되기 때문에 Blind Sql injection을 통해서 pw 파라미터 값을 유추해야합니다. 첫번째, pw 파라미터의 length를 확인합니다. 두번째, brute force로 pw 파라미터 값을 찾습니다. *** 정답 *** 더보기 패스워드 길이 : ?pw=1' or length(pw)=8%23 패스워드 확인(1자리씩) : ?pw=1' or id='admin' and ASCII(SUBSTR(pw, 자리수, 1))=아스키코드%23 패스워드 : 295d5844 id='admin' and pw='1' -> false length(pw)=8 -..

IT Security 2019.11.22

Lord of Sqlinjection - 3번 GOBLIN

lord of sqlinjection 3번 GOBLIN if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); 정규표현식 조건이 추가된 문제로 ', ", ` 를 사용하지 않고 문제를 해결해야 합니다. 우선 no 파라미터에 무작위로 숫자를 대입할 때, 1을 넣으면 'Hello guest'라는 문구가 출력됩니다. 3번 문제를 풀이는 no 파라미터의 값은 1이 아닌 값으로 설정하고, id 파라미터에 Quotes를 사용하지 않고 admin 텍스트를 넣어주어야 합니다. *** 예시 where id='guest' (=True) and no=1 (=True) (뒷 구문은 비교하지 않고 결과 출력) char() 및 헥사 값 이용 * 정답 * 더보기 ?no=0 ..

IT Security 2019.11.19

Lord of Sqlinjection - 2번 COBOLT

lord of sqlinjection - cobolt 1번 문제와 비슷하면서 약간 다른 구조입니다. pw파라미터에 md5(128비트 해시함수)가 적용되었습니다. 이전과 비슷한 SQL 구문을 삽입 시 정답이 아닌 다른 멘트가 출력됩니다. id='||True%23 PHP 구문 확인 시 if($result['id'] == 'admin') solve("cobolt"); id값에 admin을 입력해야 정답을 맞출 수 있습니다. * 정답 * 더보기 ?id=admin'%23

IT Security 2019.11.18

Lord of Sqlinjection - 1번 GREMLIN

lord of sqlinjection 첫번째 문제 - GREMLIN 제시된 query에서 where id='' and pw='' 구문을 참으로 만들면 정답을 맞출 수 있습니다. $_GET[id], $_GET[pw]를 통해서 2개의 파라미터를 받지만 '#' 이나 '--'으로 이어지는 구문을 생략할 수 있으므로 id 파라미터만 채워도 문제를 해결할 수 있습니다. * 정답 * 더보기 (%23 = #) ?id=' or 1=1%23 ?id=' or 'x'='x'%23 ?id=' || True%23 ?id=' || 1%23

IT Security 2019.11.18

취약점) ThinkPHP 프레임워크 원격명령실행 취약점(CVE-2018-20062)

ThinkPHP 프레임워크 취약점(CVE-2018-20062) ( ThinkPHP 원격 코드 실행 취약점(CVE-2018-20062) POC ) https://lopicit.tistory.com/360 * Think PHP란? - 중국기업 탑씽크에서 개발한 아파치2 기반의 PHP 프레임워크. - 중국 40,000개 이상의 서버가 Think PHP를 통해 서버를 구동. - 해당 프레임워크의 경우 중국이 개발하여 아시아권에서 많이 사용. * 취약점 : CVE-2018-20062 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20062 - 해당 취약점의 경우 원격명령실행을 할 수 있음. - url에서 컨트롤러 클래스명의 유효성이 검증되지 않아 강제 라우팅 ..

반응형