| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Foxyproxy#install#setting#firefox
- 쉴더스
- DVWA#INSTALL#github#security#kali#linux
- #루키즈
- 모듈 프로젝트
- 보고서
- 모의침투
- 개인정보보호
- 인프라 활용을 위한 파이썬
- VMWARE#INSTALL#설치
- sk shieldus
- 시스템-네트워크 보안 기술
- DVWA#Brute#Force#Attack#Test#Kali#Linux#Medium#Level#sleep
- 클라우드 기반
- Kali#Linux#KALI#LINUX#INSTALL#github#설치
- 모듈프로젝트
- sk 쉴더스 루키즈
- 애플리케이션 보안 기술
- rocky linux#siem#project#threat detection#soc#onpremise#ids#python#csv#pipeline#kali linux#DVWA#security monitoring
- Case Study
- kisa #보안관제
- 루키즈
- CERT
- 기술 특강 및 OT
- AI #취업
- 클라우드기반 보안 시스템 구축/운영 실무
- Kali#Linux#Brute#Force#Attack#Test#DVWA#Hacking#Low#무차별#대입#공격#해킹
- 클라우드 보안 기반
- 29기
- 클라우드 보안 기술
- Today
- Total
이것저것
[SK shieldus Rookies 29기] 21일차 본문
어제 복습하다가 중간에 끊기는 것 같아서 어제 분량이랑 오늘 분량을 합쳐서 한꺼번에 정리하겠다.
Nmap
- Nmap은 Network Mapper의 약자
- 네트워크 검색 및 보안 감사를 위한 무료 오픈 소스(라이선스) 유틸리티
- 네트워크에서 사용할 수 있는 호스트, 해당 호스트가 제공하는 서비스(애플리케이션 이름 및 버전), 실행 중인 운영체제(및 OS 버전), 사용 중인 패킷 필터/방화벽 및 기타 수십 가지 특성 파악 가능
- 포트 스캔 도구 역할로 침투 테스트의 정보 수집 단계에서 가장 많이 활용
- Nmap NSE 스크립트를 활용하면 NFS, SMB, RPC 등의 상세한 서비스 정보들을 수집할 수 있으며, 도메인 lookup, Whois 검색, 다른 네트워크 대역 서버의 백도어 설치 여부, 취약점 여부 등 많은 작업을 수행
Nmap 옵션
| 옵션 | 설명 |
|---|---|
-p <port ranges> |
지정된 포트만 검색 예) -p22, -p1-65535, -p U:53,111,137,T:21-25,80,139,8080,S:9 |
-p- |
모든 포트 검색 (1~65535, 포트 0은 검색되지 않음) |
--exclude-ports <port ranges> |
지정된 포트를 제외하고 검색 예) --exclude-ports 22, --exclude-ports 80-100 |
-sS |
TCP SYN 스캔으로 Stealth 스캔이라고도 불림(기본 옵션) |
-sT |
기본 옵션으로 TCP Connect() 스캔 |
-sV |
열린 포트를 조사하여 서비스/버전 정보 확인 |
-O |
운영체제 탐지 활성화 |
-A |
운영체제 탐지, 버전 탐지, 스크립트 스캐닝 및 traceroute 사용 |
-T<0-5> |
타이밍 템플릿 설정으로 숫자가 높을수록 빠름 |
-oX <file> |
주어진 파일 이름에 대해 XML 형태로 결과 출력 |
-d |
스캔을 진행하며 상세 내역 모니터링 가능 |
-dd |
더욱더 상세 내역 모니터링 가능 |
-oX |
XML 타입의 출력 스캔을 주어진 파일 이름으로 출력 |
--packet-trace |
주고 받은 모든 패킷 표시 |
--script-trace |
주고 받은 데이터 표시(NSE 스크립트를 지정해야 사용 가능) |
-v |
스캔하는 자세한 정보를 표시(더 자세한 정보는 -vv 사용) |
기본 포트 설정된 것 1000개를 스캔

-p- 옵션은 전체 포트 스캔

- -sV 옵션으로 버전 정보까지 포함하고, -oX 옵션으로 xml 형태로 저장

저장한 결과를 xml형태로 고객사에게 주면 욕을 먹는다 카더라...
따라서 형태 변환을 해줘야 한다. 상대적으로 보기 편한 html로 변환!

Nmap NSE(Network Scripting Engine)
Nmap NSE(Network Scripting Engine)는 Nmap(Network Mapper)의 스크립팅 엔진으로, 네트워크 스캔 기능을 확장하기 위해 사용. NSE를 통해 사용자는 Lua 프로그래밍 언어로 작성된 스크립트를 실행하여 기본 포트 스캔 외에 다양한 작업을 수행
- 취약점 탐지: 네트워크 서비스나 애플리케이션의 취약점을 식별.
- 서비스 버전 감지: 실행 중인 서비스의 버전 및 세부 정보 확인.
- 고급 네트워크 탐색: 특정 프로토콜 분석이나 사용자 인증 테스트.
- 자동화: 반복적인 네트워크 스캔 작업을 자동화하거나 커스터마이징.
- NSE 스크립트는 /usr/share/nmap/scripts/ 디렉토리에 저장되며,
명령어로 실행 가능합니다.nmap --script <스크립트 이름>
예를 들어, nmap --script vuln은 취약점 스캔 스크립트를 실행

나오는데 시간이 오래걸리니까 인내심을 갖고 기다리자.
)
)
)
뒤에는 아직 안 배웠지만 구글링 및 영원한 친구 gemini, gpt를 돌려서 나온 결과를 적는다.
아래는 그들의 전언이다.
- 이 결과는 타겟 시스템 192.168.206.128에 대해
- 취약점 스캔(-sV --script=vuln)*을 수행한 내역이다.
1. 21/tcp - FTP (ProFTPD 1.3.1)
매우 오래된 버전의 FTP 서버가 실행 중이며, 다수의 치명적인(High Risk) 취약점이 발견되었다.
- 주요 취약점:
mod_copy모듈 취약점 (CVE-2015-5600): 인증되지 않은 사용자가 서버 내 파일을 복사하거나 이동시킬 수 있어 원격 코드 실행(RCE)으로 이어질 수 있음.- CVE-2019-12815:
mod_copy관련 임의 파일 복사 취약점. - SQL Injection 등: 기타 다수의 Exploit이 존재함.
- 위험도: 매우 높음 (Critical) - 즉시 패치 또는 서비스 중단 필요.
2. 22/tcp - SSH (OpenSSH 4.7p1 Debian 8ubuntu1)
역시 매우 구형 버전(2007년경 출시)을 사용 중입니다.
- 주요 취약점:
- 사용자 열거(User Enumeration): 공격자가 존재하는 사용자 계정을 알아낼 수 있음.
- CVE-2008-0166 (Debian OpenSSL 취약점): 예측 가능한 난수 생성으로 인해 암호화 키가 취약할 가능성이 있음.
- 그 외 다수의 DoS 및 정보 노출 취약점 존재.
- 위험도: 높음 (High) - 계정 무차별 대입 공격(Brute Force)에 취약.
3. 25/tcp - SMTP (Postfix smtpd)
메일 서버입니다.
- 주요 취약점:
- POODLE (CVE-2014-3566): SSL 3.0 프로토콜의 취약점으로, 중간자 공격(MitM)을 통해 암호화된 데이터를 복호화할 수 있음.
- Logjam (CVE-2015-4000): 약한 DH(Diffie-Hellman) 키 교환을 사용하여 암호화 수준을 낮출 수 있음.
- 위험도: 중간 (Medium) - SSL/TLS 설정 강화 필요.
4. 80/tcp - HTTP (Apache 2.2.8 + PHP 5.2.4)
웹 서버 환경이 매우 낡았으며, 웹 애플리케이션 자체에도 취약점이 있는 것으로 보인다.
- 주요 취약점:
- SQL Injection 가능성 탐지:
http-sql-injection스크립트가/evil/,/sqlite/index.php등의 경로에서 SQL 인젝션 가능성을 다수 발견했습니다. - TRACE 메서드 활성화: XST(Cross-Site Tracing) 공격에 악용될 수 있음.
- Apache 2.2.8 취약점: 다수의 DoS(서비스 거부) 공격 및 버퍼 오버플로우 취약점 존재.
- SQL Injection 가능성 탐지:
- 특이 사항:
bWAPP(buggy Web Application)이라는 취약한 웹 앱 실습 환경이 구동 중인 것으로 보입니다. - 위험도: 매우 높음 (Critical) - 웹 해킹의 주 타겟.
이거를 읽을 줄 알아야 하는데 너무 어려워...
Searchsploit 이란
Searchsploit은 Exploit Database에서 취약점 공격 코드(Exploit Code)를 검색할 수 있게 해주는 명령어 줄 도구(Command-line Tool)입니다.
- Exploit Database (Exploit-DB): 전 세계의 해커, 보안 연구원들이 발견하고 공개한 취약점 공격 코드 및 보안 정보(PoC, Proof of Concept)가 모여있는 대규모 아카이브입니다.
- Searchsploit의 역할: 이 Exploit-DB의 전체 사본을 로컬(사용자의 컴퓨터)에 저장해 두고, 인터넷 연결 없이도 빠르고 효율적으로 검색할 수 있도록 해줍니다.
)
)
)
메타스플로잇을 이용하여 공격 진행
┌──(kali㉿kali)-[~]
└─$ sudo msfdb init 다음 명령어를 입력하여 DB 초기화를 진행을 한다. 그러면 DB 하나가 만들어진다.
┌──(kali㉿kali)-[~]
└─$ sudo msfconsole #이제 콘솔로 접속하자.
이제 옵션 정보를 확인해서 필수 사항을 채웁니다.
┌──(kali㉿kali)-[~]
└─$ show options다음 단계 진행하기 전에 밑줄 친 2개가 뭔지 짚고 넘어가겠습니다.
🔵 Auxiliary (보조 모듈)
✔ 정보 수집 / 스캔 / 우회 / 서비스 확인 / DoS / 브루트포스 등 “공격 전 단계”
✔ 시스템을 공격하지 않고 정보를 모으거나 테스트하는 역할
✔ 대표 예시
portscan (포트 스캔)
smb 스캔
ftp, ssh 브루트포스
취약점 존재 여부 확인(scanner 기능)
즉, 공격은 안 하고 정보를 얻거나 취약점을 확인하는 모듈
🔴 Exploit (공격 모듈)
✔ 실제로 취약점을 이용해 시스템에 침투하는 모듈
✔ RCE, 권한 상승 등 직접 공격
✔ 성공하면 보통 payload(쉘)도 같이 실행됨
✔ 대표 예시
MS08-067 (윈도우 취약점 공격)
vsftpd 2.3.4 backdoor exploit
apache struts RCE
즉, 취약점을 이용해서 실제로 공격하는 코드

- RHOSTS = 공격할 대상
- RPORT = 공격할 포트

채워진 것을 확인할 수 있습니다.
이제 공격을 진행합니다.
공격에 성공한 것을 확인! 근데 왜 공격을 성공했느냐??
- 취약점 원인
VSFTPD 2.3.4 백도어 취약점은 소프트웨어 자체의 설계 결함이 아니라, 공급망 공격의 결과로 발생했습니다. 아래는 주요 원인입니다:
소스 코드 위변조:
- 2011년 6월 30일에서 7월 1일 사이, VSFTPD의 공식 다운로드 사이트에서 배포된 vsftpd-2.3.4.tar.gz 아카이브에 악의적인 코드가 삽입되었습니다.
- 공격자가 VSFTPD 서버를 침투하여 정식 배포 패키지에 백도어를 추가한 것으로 추정됩니다. 이 백도어는 7월 3일에 발견되어 제거되었지만, 그 사이 다운로드한 사용자들이 취약한 버전을 설치했을 가능성이 있습니다.
백도어 동작 메커니즘:
백도어는 소스 코드의 str.c 파일에 삽입된 악성 코드로 구현되었습니다. 해당 코드는 사용자 이름 입력을 검사하여 특정 문자열(16진수 0x3A와 0x29, 즉 ASCII로 ":"와 ")")을 감지합니다.
이 문자열이 사용자 이름에 포함되면, vsf_sysutil_extra() 함수가 호출되어 포트 6200에서 TCP 소켓을 열고 /bin/sh 셸을 실행합니다. 이로 인해 공격자는 루트 권한으로 원격 셸에 접근할 수 있습니다.
소스 코드 예시 (Pastebin에서 발췌):여기서 0x3a와 0x29는 스마일리 ":)"를 나타내며, 이를 감지하면 백도어가 활성화됩니다.
# C else if ((p_buf[i] == 0x3a) && (p_buf[i+1] == 0x29)) { vsf_sysutil_extra(); }
루트 권한 실행:
- VSFTPD가 루트 권한으로 실행되고 있었기 때문에, 백도어를 통해 열린 셸은 루트 권한을 제공했습니다. 이는 시스템에 대한 완전한 제어를 가능하게 했습니다.
취약점의 짧은 노출 기간:
- 이 백도어는 2011년 7월 3일에 빠르게 발견되어 제거되었지만, 짧은 기간 동안 다운로드된 소프트웨어는 여전히 취약점을 포함하고 있었습니다. Metasploitable 2는 이 취약한 버전을 의도적으로 포함하여 학습 목적으로 사용됩니다.

- 이 백도어는 2011년 7월 3일에 빠르게 발견되어 제거되었지만, 짧은 기간 동안 다운로드된 소프트웨어는 여전히 취약점을 포함하고 있었습니다. Metasploitable 2는 이 취약한 버전을 의도적으로 포함하여 학습 목적으로 사용됩니다.
계속 실습~ 하기 전에 foxyproxy 설정을 해야한다.
foxyproxy 설정
옛날에 티스토리에 올려둔 게 있으니 참조하기 바란다.
- 버프 스위트 웹 프록시 기능을 활용할 예정!!!
(클라이언트(PC) ——-request(요청)——-- (프록시 설치) ———————→ 서버
(클라이언트(PC) ←—-——-- (프록시 설치) —— response(응답)————— 서버
- 버프 스위트와 함께 사용하면 마치 웹 트래픽 가로채기(Sniffing/Interception)을 가능케 함
)
성공적으로 잡힌 것을 확인할 수 있다.
다음 진행하기 전에 간단히 이론 정리
1. WebDAV 프로토콜의 이해
WebDAV(Web Distributed Authoring and Versioning)는 HTTP 프로토콜의 확장으로, RFC 4918에 정의된 파일 관리 및 협업을 위한 프로토콜입니다. 사용자가 원격 웹 서버에서 파일을 생성, 수정, 이동, 삭제할 수 있도록 지원하며, 주요 기능은 다음과 같습니다:
- 파일 관리(Method이용): 파일 업로드(PUT), 다운로드(GET), 삭제(DELETE), 이동(MOVE), 복사(COPY) 등.
- 협업 기능: 파일 잠금(LOCK/UNLOCK), 버전 관리, 속성 관리(PROPFIND).
- HTTP 기반 동작: 기본적으로 HTTP 메서드를 확장하여 동작하며, 포트 80 또는 443을 사용.
- 인증 메커니즘: HTTP 기본 인증(Basic Auth), 다이제스트 인증, 또는 OAuth 등을 통해 사용자 인증.
WebDAV는 원격 파일 공유와 협업 애플리케이션(예: 문서 편집, 클라우드 스토리지)에 널리 사용되지만, 잘못된 구성이나 취약한 권한 설정으로 인해 보안 위협에 노출될 수 있습니다.
웹쉘(webshell) = 웹에서 “쉘(shell)=명령어 권한”을 실행할 수 있는 서버 사이드 스크립트 = 악성코드(백도어)
- system(), exec()…. 포함된 코드
- 원격에서 개발자가 일을 하고 싶어서 만든 것!!!!
- 공격자가 악의적으로 사용하기 시작함
클라이언트 사이드 스크립트 = HTML, Javascript..등 = 브라우저에서 해석되어 실행되는 것
서버 사이드 스크립트 = PHP, ASP, JSP 등 서버에서 동적인 기능을 담당하는 것, 데이터베이스와 연결…
이제 다시 진행

해당 사이트에 접속을 진행하고 인터셉트 온 하면 잡히는 것을 확인할 수가 있다.
이제 해당 사이트에 아무 파일을 하나 올려보자(지금 보이는 test.php, test.txt는 테스트용으로 내가 올린 것이다.)

이렇게 변경을 진행해주고 이제 포워드 버튼를 누른다.
그러면 화면이 이제 바뀔 것이다. 이제 인터셉트를 오프하고 해당 사이트를 새로고침하자!
새로고침하기 전에 이렇게 크리에이트 된 것을 확인할 수 있다.
제대로 생성이 된 것을 확인할 수 있다.
이제 이걸 이용하여 상대방을 제어할 것이다.
어떻게..?? -> Reverse Connection으로
그러면 Reverse Connection이란 무엇이냐?
Reverse Connection
Reverse Connection은 공격자(해커)가 피해자 컴퓨터에 접속할 때 주로 사용하는 방법입니다.
• 역할: 공격자가 자신의 컴퓨터에서 "수신 대기 상태(Listener)"를 만들어 놓으면, 피해자의 컴퓨터(클라이언트 역할)가 공격자의 컴퓨터(서버 역할)로 먼저 연결을 요청합니다.
• 방향: 피해자 컴퓨터 $\rightarrow$ 공격자 컴퓨터
• 핵심 목적: 대부분의 방화벽은 외부에서 내부로 들어오는 연결(Inbound)은 엄격하게 차단하지만, 내부에서 외부로 나가는 연결(Outbound)은 상대적으로 관대하게 허용하는 정책을 가지고 있습니다. 리버스 커넥션은 이 아웃바운드 허용 정책을 악용하여 방화벽을 우회합니다.
보안 공격에서의 활용 (리버스 셸)
리버스 커넥션은 주로 리버스 셸(Reverse Shell) 공격을 설정하는 데 사용됩니다.
- 공격 준비: 공격자는 자신의 컴퓨터(공격자 서버)에 특정 포트를 열고 셸(Shell) 세션을 수신 대기합니다.
- 악성 코드 실행: 공격자는 피해자 컴퓨터에 악성 스크립트(페이로드)를 심고 실행을 유도합니다.
- 연결 생성: 실행된 악성 스크립트는 내부에서 외부로 (피해자 $\rightarrow$ 공격자) 연결을 시도합니다.
- 제어권 획득: 이 연결이 성공적으로 이루어지면, 공격자는 피해자 컴퓨터의 명령줄(셸)에 대한 제어권을 획득하여 원격으로 명령을 실행하고 데이터를 빼낼 수 있게 됩니다.
- 요약하자면, 리버스 커넥션은 "피해자가 해커에게 문을 열고 들어오세요"라고 요청하는 것과 같아서, 일반적인 방화벽이 탐지하거나 차단하기가 어렵습니다. 이 때문에 해킹 및 모의 해킹(Penetration Testing)에서 매우 중요한 기법으로 사용됩니다.




파라미터 값 입력을 진행하면 브라우저에서 확인 가능

프로세스 정보 확인

ls-al명령어로 확인 가능

아이피 주소도 확인 가능

네트워크 연결 정보 확인
근데 이건 단순히 보는 것이고 실제로 내가 악성코드를 심거나 동작을 하기 위해서는 브라우저에서는 상당히 힘이 든다.
콘솔에서 edit을 하면 참 좋을텐데...
그래서 아래와 같이 진행한다.
)
공격자가 nc -lvp 4444를 대기하고 난 후에, 장악한 서버에 리버스 컨넥션을 수행한다. 이제 콘솔에서 명령어가 잘 입력된다.
이제 bee-box를 이용한 실습을 진행한다.

해당 문제를 풀기 위해서 친절하게 힌트가 있다.
check the url 하란다. 자세히 보니 admin=0이다.
참 쉽죠잉~ admin=1로 변경하면 뚝딱이다.
근데 지금은 '1'을 입력하여 풀렸지만 만약에 999이런 큰 숫자를 입력해야 한다면 0부터 999까지 다 집어넣을 수는 없다. 물론 할 수 있겠지.... 근데 노가다는 힘들어
따라서 다른 방법으로도 진행을 해보자!
버프스위트를 키고 타겟 아이피 추가 진행하자.
그리고 잡았으면 해당 란을 클릭하면 send intruder가 있다. 그걸 클릭하자.
그리고 intruder 탭을 들어가자.
그다음에 0을 드래그 하고 ADD 버튼을 클릭하자.
이제 Payloads 탭을 클릭하고 값을 조정하자.
우리는 숫자를 0부터 50까지 돌릴 거니까 타입은 넘버로 설정하고 0~50으로 입력을 진행한다. 스탭은 1씩 증가해야하니까 1로 그대로 둔다. 2로 설정하면 2,4,6,8...이런 식으로 검사한다.
설정 완료했으면 sniffer attack을 클릭!
이제 이렇게 결과가 나올 것이다. 근데 1이 다른 값들에 비해 Length가 다르다. 그러면 admin=1이 맞다.
왜 Length가 다르면 탈취했다고 볼까??
해당 이유는 내가 운영 중인 tistory에 옛날에 남겨놓았다.
이유가 궁금하면 들어와서 봐
이제 security level_low를 겨우 진행했을 뿐이다. 다음은 medium이다.
미디움 보니까 고기 먹고 싶다...

쿠키값을 체크하란다.
버프스위트에서 체크를 해보자.
애드민 값이 0으로 되어있다 1로 변경하자
포워드 버튼 클릭해주면 성공이다.
이렇게 하는 법 말고도 개발자도구의 쿠키값을 변경하여 풀 수도 있다.

0에다가 우클릭하면 edit value가 나온다 그걸로 편집한 뒤에 값을 1로 변경하고 새로고침하면 된다.
다음 걸로~~

어떻게 풀어야 되나 하고 화면을 보는데 뭔가 이상하다…??
색깔을 화이트로 해서 숨겨놓았다. 근데 뭔가 푸는 방식이 야매같음…
버프스위트로 돌려보자.
역시나 폰트 컬러가 화이트로 되어있고 옆에 값이 숨겨져 있었다.
이제 미디움으로 가자.
function unlock_secret()
{
var bWAPP = "bash update killed my shells!"
var a = bWAPP.charAt(0); var d = bWAPP.charAt(3); var r = bWAPP.charAt(16);
var b = bWAPP.charAt(1); var e = bWAPP.charAt(4); var j = bWAPP.charAt(9);
var c = bWAPP.charAt(2); var f = bWAPP.charAt(5); var g = bWAPP.charAt(4);
var j = bWAPP.charAt(9); var h = bWAPP.charAt(6); var l = bWAPP.charAt(11);
var g = bWAPP.charAt(4); var i = bWAPP.charAt(7); var x = bWAPP.charAt(4);
var l = bWAPP.charAt(11); var p = bWAPP.charAt(23); var m = bWAPP.charAt(4);
var s = bWAPP.charAt(17); var k = bWAPP.charAt(10); var d = bWAPP.charAt(23);
var t = bWAPP.charAt(2); var n = bWAPP.charAt(12); var e = bWAPP.charAt(4);
var a = bWAPP.charAt(1); var o = bWAPP.charAt(13); var f = bWAPP.charAt(5);
var b = bWAPP.charAt(1); var q = bWAPP.charAt(15); var h = bWAPP.charAt(9);
var c = bWAPP.charAt(2); var h = bWAPP.charAt(2); var i = bWAPP.charAt(7);
var j = bWAPP.charAt(5); var i = bWAPP.charAt(7); var y = bWAPP.charAt(22);
var g = bWAPP.charAt(1); var p = bWAPP.charAt(4); var p = bWAPP.charAt(28);
var l = bWAPP.charAt(11); var k = bWAPP.charAt(14);
var q = bWAPP.charAt(12); var n = bWAPP.charAt(12);
var m = bWAPP.charAt(4); var o = bWAPP.charAt(19);
var secret = (d + "" + j + "" + k + "" + q + "" + x + "" + t + "" +o + "" + g + "" + h + "" + d + "" + p);
if(document.forms[0].passphrase.value == secret)
{
// Unlocked
location.href="/bWAPP/ba_insecure_login_2.php?secret=" + secret;
}
else
{
// Locked
location.href="/bWAPP/ba_insecure_login_2.php?secret=";
}
} 다음과 같은 코드를 발견할 수 있다.
이 코드가 해당 문제를 풀기 위한 키이다.
var bWAPP = "bash update killed my shells!"이걸로 하나씩 맞춰보면 된다.
d가 23이니까 0부터 23까지 세면 된다. 그러면 h로 나온다.
j는 5이니까 0부터 5까지 세면 된다. 그러면 u로 나온다.
그렇게 쭉하면 hulk smash!가 나온다.
좀 더 쉽게 가보자, 이건 너무 하나하나 노가다니까.
개발자더구(F12)를 열고 콘솔에다가 이걸 복붙하자.
그리고 alert(secret) 를 입력한다.
바로 띠용~ 하고 나와버린다.
또 하나 방법이 있다.
그냥 '아니요' 처리를 해버리면 된다.
기존에 패스워드인 hulk smash!가 아니라 그냥 1234를 입력한다.
그냥 통과되어버린다.
쇼핑몰 회원가입 우회하기

정상적인 값을 입력하지 않고 임의의 값을 입력하여 회원가입을 진행하려고 한다.
해당 펑션을 삭제하면 서버에서 검증을 하지 않고 자바스크립트에서 처리하기 때문에 해당 펑션만 삭제하면 우회가능함.
위에 있는 사실을 어떻게 알았냐고 물어본다면 한 30분 동안 이것저것 삭제하고 추가하고 만지다가 깨달았다. 아마 몇 번 삭제해보면 왜인지 알 것이다.
이렇게 있던 값을 안에 로직을 싹 다 삭제해버리면 어차피 js에서 처리하기 때문에 그냥 submit 될 것이 자명하다. 그러면 싹 다 삭제를 해버리자.
안에 주저리주러리 있던것들을 삭제해 버리고 동작에 필요한 최소한의 명령어만 남겼다.
이제 임의의 값을 입력한다.
아마 이 페이지는 성공적으로 진행됐을 것이다. 문제는 다음 페이지도 있다는 것...
아까 했던 거 반복하자.


여기도 아까 했던 것처럼 똑같이 처리하면 된다.


오늘 여러모로 조금 빡센 느낌이 드네...
'SK Shieldus Rookies 29' 카테고리의 다른 글
| [SK shieldus Rookies 29기] 23일차 (0) | 2025.12.15 |
|---|---|
| [SK shieldus Rookies 29기] 22일차 (0) | 2025.12.08 |
| [SK shieldus Rookies 29기] 20일차 (0) | 2025.12.05 |
| [SK shieldus Rookies 29기] 19일차 (0) | 2025.12.05 |
| [SK shieldus Rookies 29기] 18일차 (0) | 2025.12.05 |