| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- base64
- igoat
- Volatility
- Reflected XSS
- 2018
- foremost
- Openstack
- frida
- InsecureBank
- kibana
- vulnhub
- beebox
- 인시큐어뱅크
- dreamhack
- FTK Imager
- binwalk
- diva
- elasticsearch
- CTF-d
- Strings
- Docker
- otter
- XSS
- ctf
- ESXi
- 안드로이드
- lord of sql injection
- MFT
- SQL Injection
- Suninatas
- Today
- Total
목록전체 글 (450)
Information Security
PHP Code Injection - phpi.php 파일에서 message 값 검증 미흡으로 시스템 정보가 유출될 수 있는 인젝션 공격이다. Level (Low) 그림 1-1에서 보여주는 message를 클릭하면 test 메시지를 보여주고 url 주소에서 보여진다. PHP에서 리눅스 명령어를 사용하기 위해 system 함수를 사용해 파일목록이 보여지는 것을 알 수 있다. Level (Medium) 난이도 중은 그림 1-1처럼 리눅스 명령어가 실행되지 않는 것을 알 수 있다. 대응방안 Medium과 High에서 세미콜론을 사용하여 다른 명령어를 호출하거나 스크립트 코드를 주입하는 공격이 실행되지 않는다. htmlspecialchars 함수는 두 번째 인자에 ‘ENT_QUOTES’를 추가하여 크로스 상ㅣ트..
HTML 인젝션 - Reflected(Get) - 취약한 매개변수에 악의적인 HTML 코드를 삽입하는 공격 - HTML 태그로 악의적인 사이트에 연결하거나 악성 파일 다운로드하도록 유도 Level (Low) 이번에는 스크립트 언어 123, 123 을을 입력했다. 태그가 해석되면서 결과 값을 보여준다. Reflected는 클라이언트가 서버에 영향을 주는 게 아니라 클라이언트에게 영향을 주는 것을 알 수 있다. 이번에는 쿠키 값을 불러왔다. 경고창에 cookie 값을 보여주는 것을 알 수 있다. Level (Medium) 그림 1-1 처럼 난이도 중에서 데이터를 입력했다. 그림 1-2와는 다르게 스크립트 언어가 그대로 보여주는 것을 알 수 있다. 스크립트 언어가 어떻게 입력되는 지를 확인하기 위해 소스코드를..
그림 1-1 O를 클릭했더니 자꾸 오른쪽으로 이동한다. 페이지의 소스코드 확인 개발자 모드에서 확인한 결과 800번을 클릭하면 다른 사이트로 이동하는 것 같다. left 부분을 799px로 변경해보았다. left 부분을 799px로 변경 후 한번 클릭했더니 문제를 클리어했다.
그림 1-1 6번 문제를 보면 index.phps와 Hint base64를 확인할 수 있다. index.phps 페이지로 이동을 하면 그림 1-2처럼 소스코드를 확인할 수 있다. 그림 1-3을 보면 base64 디코딩 소스코드를 확인할 수 있다. 디코딩 값이 admin이 되어야 하므로 admin/admin을 20번 인코딩한 값이 들어가야 하는 것을 알 수 있다. 쿠키 값에 admin/admin 20번 인코딩 값을 대입하면 문제를 해결할 수 있다.
메타스플로잇에서 smb_delivery 검색 use exploit/windows/smb/smb_delivery 모듈 옵션을 확인 exploit을 하면 DLL 파일이 만들어지는 것을 확인 그림 1-3에서 만들어지 rundll32.exe 파일을 배치 파일로 배포 메타스플로잇에서 8080포트를 열고 윈도우 서버에서 8080포트로 접속 그림 1-5에 보여주는 배치파일을 실행시키면 메타스플로잇에서 세션이 연결되는 것을 확인할 수 있다.
정의 - 시스템의 어떠한 인증 체계에 취약점이 존재하여 공격자가 시스템에 존재하는 사용자 계정 목록을 획득할 수 있는 취약점 영향 - 에러메시지를 통해 아이디/비밀번호를 유/무 판별할 수 있는 정보를 획득할 수 있다. 진단 시스템에 존재하지 않는 아이디와 비밀번호를 입력했다. 메시지를 출력하여 사용자 계정의 존재 유무를 알려준다. 시스템에 존재하는 아이디의 비밀번호를 잘못 입력했다. 비밀번호가 틀렸다는 사실을 메시지로 알려준다. 시스템에 존재하는 아이디와 정확한 비밀번호를 입력했다. 로그인에 성공했다는 메시지가 출력됬다. 대응방안 - 로그인 시도 속도를 제한하여 자동화 도구를 이용한 공격을 방지한다. 로그인 실패시 메시지는 상세한 피드백을 제공하지 않고 포괄적으로 대응한다. 실시간 모니터링을 통해 비정상..
정의 - 관리자의 패스워드나 중요 정보 또는 암호화키 등을 주석으러 처리하면 문제점이 발생할 수 있다. 발생 위치 - Changepassword.java, DoLogin.java 영향 - 인시큐어뱅크의 경우 하드코드된 사용자 계정과 암호화키를 노출한다. 진단 Find in Path에 jack@을 입력해 소스 코드에서 주석으로 처리되어 있는지 확인했다. “This is the super secret key123”이라는 중요한 AES 암호화 키가 노출된 것을 알수 있다. 대칭키 블록 암호 알고리즘으로 키값을 노출할 경우 복호화가 될 수 있다. 대응방안 - 키 값은 앱에 저장하지 않고 서버에 저장하여 보호한다. 개발 완료 후 주석처리에 주의를 기울여야한다. 암호화키의 경우, 솔트를 사용하여 암호화의 안전성을 ..
정의 - 요청하는 값을 중간에서 가로챈 후 매개 변수값을 변조하여 전송한다. 영향 - 사용자의 입력값을 확인하여 정보를 수정해 악용할 경우 개인 신상 유출이나 신용카드 도용등의 피해가 발생할 수 있다. 진단 계좌 번호와 입금 금액을 입력하고 전송하는 중간에서 버프슈트로 잡았다. 입금 금액을 123456에서 78901으로 변경해서 전송했다. ViewStatement 상에서 보이는 데이터는 변조되기 전의 데이터인 123456이라는 것을 알 수 있다. 대응방안 - 모든 입력값에 대한 유효성 검증을 서버에서 수행한다. 상태 정보나 민감한 데이터 특히 사용자의 세션정보와 같은 중요한 정보는 반드시 서버에서 검증한다.