Tags

security

Malicious code in xz/liblzma 😱

1 min read

바로 어제 압축 처리를 xz 패키지의 upstream tarballs에서 악의적인 동작이 확인되어 이슈입니다. 결론은 xz 내 Malicious code가 삽입되었고 이로 인해 많은 시스템이 영향받을 것으로 보입니다. CVE-2024-3093를 할당받은 이 이슈에 대해 이야기해볼까 합니다.

Smuggling with JSON

2 min read

JSON은 YAML과 함께 자주 사용되는 포맷 중 하나입니다. K:V 형태의 단순한 구성이지만, JSON의 특성을 이용하면 데이터를 숨기고 Application의 잘못된 동작을 유도할 수 있습니다.

Preventing LLM Prompt Leak

1 min read

ChatGPT는 사용자 개개인이 Bot을 만들고 서비스할 수 있도록 제공되고 있습니다. 저도 제 편의를 위해 몇가지 만들어서 사용하는데 너무나도 쉬운 방법으로 Prompt를 읽어낼 수 있었네요.

Prompt Injection via Ascii Art

1 min read

LLM 모델을 사용하는 서비스에선 Prompt Injection과 같은 LLM Attack을 방어, 완화하기 위해 여러가지 보호 로직을 가지고 있습니다. 그리고 이를 깨기 위해서 독창적인 방식의 Prompt가 필요합니다.

PQ3 and PQC 🗝️

2 min read

Apple에서 조만간 iMessage에 PQ3라는 암호화 프로토콜을 적용할 예정이라고 발표했습니다.

DOM Handling with MutationObserver

3 min read

최근 ZAP은 SPA 기반의 앱을 쉽게 식별하기 위해 Client Side Integration 이란 기능을 추가했습니다. 이 이 때 DOM의 변화를 식별하기 위한 장치로 MutationObserver가 사용되었는데요. 오늘은 MutationObserver가 뭔지 그리고 보안 테스팅 시 어떻게 사용할 수 있을지 이야기해봅니다.

Lazy-loading iframe in Firefox

~1 min read

최근에 Firefox쪽에서 하나 업데이트를 예고 했습니다. 곧 img 태그에만 존재하던 lazy-loading이 iframe에도 적용되는데요. 성능적인 장점은 분명히 있겠지만, img와 달리 XSS의 리스크가 높은 iframe의 로드 시점을 통제할 수 있는 형태라 재미있는 이슈가 나올지 기대되기도, 반대로 또 걱정되기도 합니다.

WebAuthn과 Passkey

4 min read

여러분들은 패스워드 매니저를 사용하시나요? 저는 개인적으로 Apple의 암호 기능을 주로 사용합니다. 또한 icloud+도 사용하고 있어 이메일 가리기 + 암호 조합으로 가급적 서비스별로 계정과 패스워드가 겹치지 않는 상태로 유지하고 있습니다. 구글의 경우 Google password manager를 통해 비슷하게 사용하시는 분들도 있을거라고 생각합니다. Apple이나 Google의 이러한 기능들과 FIDO 관련 인증 방식들은 Passwordless의 대중화를 앞당겼고 이제는 Password를 입력하는 것이 점점 어색해지는 시기가 온 것 같습니다.

ZAP 2.14 Review ⚡️

3 min read

생각보다 엄청 빠른 주기로 ZAP 2.14 릴리즈가 발표되었습니다 🎉⚡️

XSS via reportError

1 min read

reportError란 함수를 아시나요? Chrome 95, Firefox 93 버전에 추가된 글로벌 메소드로 JS의 uncaught exception을 콘솔이나 글로벌 이벤트 핸들러로 넘겨주는 기능을 수행합니다. PortSwigger 측에서 reportError 함수를 이용한 트릭을 공개했고 잠깐 시간내어 살펴본 내용 공유드려봅니다.

ZAP Map Local로 쉽게 Fake Response 만들기

2 min read

보안 테스팅에선 HTTP Response를 자주 변경해야할 경우가 많습니다. 이럴 때 저는 보통 ZAP에선 breakpoint와 replace 기능, 그리고 스크립팅을 주로 사용했었습니다. (+Proxify의 DSL)

Zest + YAML = ❤️

1 min read

최근에 Zest 쪽의 Commit (zaproxy/zest/6d67925) 하나를 주시하고 있었습니다. 바로 Zest에서 YAML 포맷 지원에 대한 내용이였는데요. 드디어 공식 릴리즈가 이루어졌고 이제 Zest에서 YAML 포맷을 사용할 수 있게 되었습니다.

ZAP’s Client Side Integration

2 min read

최근에 ZAP에 재미있는 Addon이 추가됬습니다. GSoC(Google Summer of Code) 2023의 결과물로 BurpSuite의 Navigation Recorder와 비슷해보이는 기능으로 릴리즈 직후부터 틈틈히 가지고 놀아본 결과 다른 의미로 가능성이 보이는 Addon이란 생각이 들었습니다.

XSpear Reborn: Big Changes Coming

2 min read

제가 Dalfox 를 개발하기 전에 Ruby로 작성했었던 XSpear란 도구가 있었습니다. 동일하게 XSS를 테스팅하기 위한 도구였고, 현재 성능은 당연히 Dalfox쪽이 압도적으로 좋은 상태입니다. 그리고 작년부터 XSpear에 대한 Reborn 계획을 생각해 두었었는데, 최근 만들던 도구도 어느 정도 윤곽이 잡혀서 이제 본격적으로 XSpear에 대해 대규모 개편을 진행하려고 합니다.

Customize ZAP HUD 🎮

1 min read

Today, I write a post about how to use ZAP HUD in an engaging manner. While ZAP HUD may not have incredibly useful features at the moment, experimenting with it could be worthwhile since it has the potential to bring about changes in the analytical approach.

90-Day Certificate Validity

2 min read

오늘은 구글에서 추친하는 90일의 인증서 유효기간에 대한 이야기를 하려고 합니다. 구글이 올해 3월(2023)에 Chromium Security 를 통해 공지(방향성에 대한 공지)한 이후에 아직 별다른 액션이 없긴 하지만, 한번쯤은 정리하고 미리 준비할 수 있는 것은 준비하는 것이 좋으니 글로 정리하여 남겨봅니다.

Hello Noir 👋🏼

2 min read

Hi all! I am excited to announce the release of my toy project called ‘Noir’ 🎉🚀

Optimizing ZAP and Burp with JVM

1 min read

누군가가 저에게 Application Security, Pentest 등에서 가장 활발하게 사용되는 도구를 선택하라고 하면 당연히 Burpsuite와 ZAP 같은 Proxy 도구를 선택할 것 같습니다. 최근 Caido가 많이 올라오는 추세이긴 하나, 장기간 리드 역할을 수행해 온 두 도구를 따라가기엔 아직 충분한 시간이 더 필요할 것으로 보입니다.

ZAP 2.13 Review ⚡️

1 min read

예상보다 훨씬 빠른 시기에 ZAP 2.13이 릴리즈되었습니다. 보통 매년 가을, 겨울중에 릴리즈가 있었는데, 이번에는 여름에 릴리즈가 생겼네요. 변화된 부분이 크진 않아서 릴리즈 노트를 보면 대부분 알 수 있습니다. 2.13 릴리즈 직후부터 몇일 동안 살펴보고 느꼈던 점 위주로 작성해봅니다.

SSL Version을 체크하는 여러가지 방법들

3 min read

여러가지 명령을 통해 ssl version 체크하는 방법들 간략하게 메모해둡니다. 개인적으로 주로 testssl.sh를 자주 사용했었는데, 쓰다보니 종종 다른 도구와 크로스 체크가 필요한 일이 있네요. 여러 도구들이 ssl version 관련 옵션은 지원하고 있으니 숙지해두면 종종 사용할 일이 있을듯 합니다 :D

MSF Pivoting X SocksProxy

2 min read

최근에 MSF로 Pivoting 환경에서 테스팅이 필요한 경우가 있었습니다. 방법 자체는 어려운게 아니라 그냥 몸에 있는대로 진행하긴 했는데, 생각해보니 블로그에 정리했던 적은 없는 것 같아 간단하게 남겨봅니다.

CVSS 4.0 Preview 살펴보기

3 min read

CVSS(Common Vulnerability Scoring System)는 시스템, 소프트웨어의 취약성을 평가하기 위해 사용되는 취약성에 대한 스코어링 시스템입니다. Offensive Security 관련하여 현업에 있다면 익숙하지만 반대로 문제점도 많다고 느껴지는 그런 친구죠. 보통 CVSS2 또는 CVSS3를 많이 사용하고 있는 상태인데, 슬슬 CVSS4의 릴리즈가 점점 다가오고 있어 살펴볼 필요가 있긴 합니다.

Attack Types in Web Fuzzing

2 min read

Fuzzing은 어플리케이션을 테스트하고 보안 취약점을 찾아내기 위해서 가장 일반적으로 사용하는 기술입니다. 보통 Burpsuite의 Intruder, Turbo Intruder 또는 ZAP의 Fuzz, Caido의 Automate와 같이 Proxy 도구에서 제공하는 기능을 사용하거나 ffuf 같은 cli fuzzer를 사용해서 테스트하곤 합니다.

Hack the AI Prompt 🤖

3 min read

chatGPT는 출시 이후 정말 많은 것들을 바꿨습니다. 물론 실제 일에 큰 영향을 준다기 보단 여러 AI가 사람들의 많은 관심을 받게되면서 보안적인 관점에서도 충분한 고민과 기술의 발전이 오는 시기라고 생각합니다. 이전에 AI에 대한 공격은 학습 쪽에 관여하는 형태로 치우쳤다면 현재는 Prompt에 대한 테스팅과 관심도 많은 상태입니다.

ZAP Site Tree에서 404 페이지 한번에 지우기

~1 min read

ZAP의 Site tree는 Burp와는 다르게 404 Not found도 보여주고 있습니다. 종종 쓸만한 정보가 되기 하지만 대체로 보기 불편한 존재입니다. ZAP에서는 공식적으로 기능을 제공해주고 있지 않기 때문에 간단하게 스크립팅하여 제거하는 것이 편리합니다. 간단하게 공유해봅니다.

Encoding Only Your Choices, EOYC

2 min read

요즘 장난감 삼아 Crystal과 Elixir로 여러가지 코드를 작성해보고 있습니다. 특히 Crystal은 Ruby와 제가 예전에 한번 소개하기도 헀고 Ruby와 거의 유사한 문법에 속도까지 갖추고 있어 개인적으로 관심이 많았던 언어입니다. 최근에 여러가지 이유로 Crystal은 주력 언어로 만들어가고 있습니다. 오늘은 Crystal로 작성한 간단한 도구 하나 공유하려고 글을 작성해봅니다.

Cross handling Cookies in Zest

3 min read

오늘은 Zest 스크립트에서 Headless Browser와 일반 ZAP 요청간 Cookie를 처리하는 방법에 대해 이야기하려고 합니다. Headless Browser와 ZAP 내부의 Req/Res 간에 쿠키 교환으로 여러 상황에서 웹 요청을 쉽게 처리하여 원하는 보안 테스팅, 자동화 루틴을 이어갈 수 있습니다.

ZAP에서 우아하게 Cookie 기반 Auth 테스팅하기

3 min read

Web의 Authorization, Permission, Access Control 테스팅 시 어떤 방법을 활용하시나요? 보통 보안 테스팅 단계에선 권한을 바꿔가며 수동으로 테스트하거나 자동화된 도구를 통한 테스팅, 또는 두개를 병행하여 테스트합니다. 그리고 자동화된 테스팅을 위해선 Burpsuite, ZAP, CLI Tools 등 여러가지 도구를 사용합니다.

Hello Caido 👋🏼

2 min read

최근 Rust 기반의 분석도구인 Caido가 드디어 Public Beta로 전환되었습니다. 기존 Private Beta 당시 수려한 UI와 빠르다고 알려진 속도 덕분에 일부 BugBountyHunter 들에게 선택되어 사용되었고 많은 관심을 받고 있던 도구입니다.

CORS Bypass via dot

1 min read

Origin 헤더와 ACAO(Access-Control-Allow-Origin) 헤더는 Cross-Origin 관계에서 데이터를 전달하고 수신하기 위한 헤더로 SOP(Same-Origin Policy)를 공식적으로 우회하기 위한 헤더입니다. 일반적으로 CORS라고 통용되어 부르며, 이는 JSON HijackingCSRF 취약점에 큰 접점을 가지고 있습니다.

ZAP Custom En/Decoder 만들기

2 min read

ZAP의 확장성은 Scripting Engine의 파워에서 나옵니다. URL, HTML, Base64 등 테스팅 단계에선 인/디코딩을 하는 경우가 굉장히 많은데요. 이 때 사용하는 Encode/Decode/Hash 기능 또한 Scripting으로 확장할 수 있습니다.

Firefox + Container + Proxy = Hack Env

2 min read

여러분들은 분석하실 때 어떤 브라우저를 사용하시나요? 저는 보통 각 도구의 Embedded Browser(ZAP-Firefox/Burp-Chrome)을 주로 사용합니다. 그리고 종종 일단 Firefox로도 테스트를 즐겨합니다.

Front-End Tracker로 DOM/Storage 분석하기

2 min read

ZAP 팀에서 관리하는 도구들 중에 유독 관심이 가던 도구가 하나 있었습니다. 오늘은 드디어 정리를 마무리해서 블로그 글로 공유드리면서 어떻게 사용하는지, 이걸 통해 무엇을 할 수 있는지 이야기드리려고 합니다.

Katana와 Web Crawler

1 min read

ProjectDiscovery의 도구들은 항상 커뮤니티에 큰 파장을 일으킵니다. 실제로 ProjectDiscovery로 인해 CLI 기반의 테스팅이 훨씬 대중화되고, 이들의 도구는 각종 Pipeline에서의 핵심 도구가 되고 있습니다. 그리고 최근에 Katana란 도구를 출시하고 Nuclei 만큼 큰 파장을 일으키고 있는 것 같네요.

XSSHunter가 종료됩니다

1 min read

Blind XSS 도구 중 가장 유명하고 많은 기능을 담았던 XSSHunter가 올해까지만 운영되고 내년부터 서비스가 종료됩니다. 기업 내부에서는 보통 별도의 BXSS Callback 서비스를 구축하거나 OAST를 사용하여 체크했겠지만, 버그바운티 유저나 외부에서 테스팅하는 경우 XSSHunter 사용 빈도가 높았던걸로 알고 있어 아쉬움이 많이 남습니다. (저 또한 굉장히 애용했구요.)

ZAP 2.12 Review ⚡️

2 min read

드디어 ZAP 2.12 버전이 릴리즈되었습니다. 🎉👏🏼🍾 10월 중순쯤에 릴리즈 예정이였지만, 이슈로 약간 늦어졌다고 하네요. 오늘은 ZAP 2.12 버전에서 바뀐 내용들을 리뷰해보도록 하겠습니다. 그럼 시작하죠.

CSRF is dying

3 min read

CSRF는 XSS, SQL Injection과 함께 웹에서 가장 대표적이 취약점 중 하나입니다. 현재까지도 종종 발견되는 취약점이지만, 업계에서는 오래전부터 서서히 죽어간다는 표현을 하고 있습니다.

Metasploit에서 HTTP Debug 하기

1 min read

MSF를 사용하다 보면 실제로 공격 페이로드가 잘 전송되었는지 확인하고 싶을 때가 있습니다. 또 모듈을 이용해서 테스트했지만 개발자 등이 이해하기 쉽게 HTTP 요청으로 보여줘야할 때도 종종 생깁니다.

Broken link를 찾자! DeadFinder

1 min read

최근에 Broken Link(Dead Link)를 쉽게 찾기 위한 도구를 하나 만들었습니다. 제 블로그의 Broken Link를 찾기 위한 목적이였지만, 가볍게라도 한번 공유하는게 좋을 것 같아서 블로그 글로 작성해봅니다.

OAST에 Hint를 더하다

2 min read

OAST(OOB)를 통한 테스팅 방법은 몇년 사이 정말 많은 발전이 있었습니다.

Param Digger! Easy param mining via ZAP

1 min read

올해 ZAP의 GSoC 프로젝트는 Param Mining을 하는 AddOn이 선정 되었었습니다. BurpSuite의 Param Miner를 모티브로 쉽게 Mining하는 것이 목표가 되었기에, Scripting과 Fuzzing으로만 Param Mining을 제 입장에선 매우 반가운 소식이였었죠.

Hex? Imhex and Hexyl

1 min read

여러분들은 어떤 Hex editor/viewer를 사용하시나요? 저는 Linux를 메인으로 사용할 떈 Ghex와 hexdump, macOS에선 hexyl와 vim(+plug)을 주로 사용합니다. 오늘은 크로스 플랫폼을 지원하는 엄청난 Hex Editor인 ImHex에 대해 소개해드리려고 합니다. 저도 이제는 ImHex와 hexyl 조합으로 사용합니다 :D

ZAP⚡️ Replacer VS Sender Script

2 min read

ZAP에서 모든 요청에 새로운 헤더나 데이터를 추가하려면 어떻게 해야할까요? 보통은 Replacer 라는 기능을 이용해서 값을 변경하거나 새로 추가할 수 있습니다.

간단하게 ZAP Scripting 배워보기

1 min read

오늘은 ZAP Scripting을 처음 접할 때 익숙해지기 좋은 예제 두가지를 소개해볼까 합니다. 이 글을 읽어주시면, 간단한 코드 작성으로 ZAP에서 데이터를 조회하거나, 3rd party 스캔을 요청하는 방법을 얻어가실 수 있을거에요 😊

ZAP Forced User Mode!!

1 min read

제가 작년부터 ZAP의 Authentication / Authorization 기능들에 대한 이야기를 많이 했었던 것 같습니다. 실제로 테스팅에도 많은 부분들을 적용하고 사용하고 있었습니다.

Input/Custom Vectors를 사용하여 ZAP에서 정밀하게 취약점 스캔하기 🎯

1 min read

Active Scan

먼저 Active Scan에 대한 이야기를 가볍게하고 시작하겠습니다. ZAP의 Active Scan은 수집된 URL을 기반으로 지정된 패턴, 로직으로 자동화된 보안 테스팅을 하는 기능입니다. 보편적으론 사이트 전체에 대한 스캔이 많이 언급되지만, ZAP의 강점 중 하나는 원하는 HTTP Request를 대상으로 단건의 스캐닝을 쉽게 할 수 있기 때문입니다.

Zest script in CLI

2 min read

ZAP의 강력한 기능인 Scripting에서 한번 더 강력하게 만들어 주는 것이 바로 Zest script입니다. JSON 기반의 스크립트로 웹 Req/Res 그리고 Headless browser에 대한 컨트롤, 마지막으로 Assertion 등 테스팅 기능을 이용해 간단한 코드로 복잡한 테스팅을 할 수 있는 스크립트입니다. 자세한 내용은 제가 전에 작성했던 글들을 참고해주세요.

ZAP에서 Zest Script로 Headless 기반의 인증 자동화 처리하기

3 min read

최근에 Headless 기반의 Authentication script를 만들고 있었는데 약간의 어려움이 있었습니다. 실제로 headless browser를 통해 인증 처리는 쉬우나 그 뒤에 ZAP이 이를 인지하게 하는 것이 쉽지가 않았었는데요. 문뜩 제가 예전에 Zest script를 작성할 때 Client 관련 항목을 봤던게 갑자기 기억이 나서 GUI로 작성해보니 역시나 Client(Headless browser)를 지원하는게 맞았네요.

ZAP Active Scan 시 Progress와 Response chart 활용하기

2 min read

오늘은 ZAP의 ActiveScan에서 볼 수 있는 Progress와 Response chart에 대한 이야기를 잠깐 하려고 합니다. 뭔가 크게 도움되는건 아니지만 습관적으로 제가 창에 띄어두고 있는게 바로 Scan에 대한 Progress인데요. 왜 띄우고, 어떻게 사용하는지 이야기해보죠.

ZAP Bookmarklet for Speed up

1 min read

Bookmarklet

Bookmarklet은 Javascript 함수를 Bookmark에 추가하여 마치 브라우저 확장 기능과 유사하게 사용하는 기법으로 간단한 생성 방법에 비해 웹에서의 불편했던 작업들을 단축시킬 수 있어서 많은 사람들이 애용하는 기술입니다.

PyScript와 Security 🐍🗡

2 min read

최근 PyCon US 2022의 발표 중 PyScript가 공개되었습니다. PyScript는 HTML에서 Python 코드를 사용할 수 있도록 제공하는 라이브러리로 최근 엄청난 범용성과 낮은 러닝 커브를 가진 Python이 웹으로 확장하는 부분이라 관심도 많고 말도 많습니다.

ZAP HTTP Sessions를 통해 간편하게 세션 기반 테스팅하기

2 min read

ZAP에는 HTTP Sessions라는 기능이 있습니다. 이름과 옵션에 있는 내용을 보고 세션 처리 관련된 기능이구나 생각만 했지 실제로 한번도 사용해보지 않았던 기능입니다. 오늘 놓친 기능이 있을까 싶어서 메뉴를 돌아다니던 중 발견하여 테스트해봤는데 생각보다 테스팅의 불편함을 줄여줄 수 있는 부분으로 보여서 글로 소개해드리려고 합니다 :D

CSS Transition 기반의 ontransitionend XSS

~1 min read

@garethheyes가 또 새로운 XSS 벡터를 만들어 왔습니다. 바로 ontransitionend 란 이벤트 핸들러인데요. 이 이벤트 핸들러는 transition, 즉 CSS의 애니메이션이 끝날 때 동작하며 동작을 위해선 해당 Element에 포커스 상태가 되어야합니다.

Metasploit 데이터를 Httpx로?

3 min read

오랜만에 Metasploit 관련 글을 쓰는 것 같습니다. 다름이 아니라 netpen이라는 plugin을 하나 찾았는데, 이를 이용하면 Metasploit으로 수집한 정보를 가지고 nuclei나 zap/burp 등 다른 도구와 파이프 라인으로 구성해서 사용하기 좋아보였습니다.

ZAP HUNT Remix

1 min read

제가 오랬동안 잘 써오던 도구가 있었습니다. 바로 HUNT인데요! 저 또한 분석하는 방법 중 Data Driven Testing을 선호하는 편이라 HUNT 스크립트를 정말 잘 쓰고 있었습니다.

Context Technology로 ZAP 스캔 속도 올리기

~1 min read

ZAP의 Context(Scope)에는 Technology 라는 항목이 존재합니다. 이는 Context > Technology 경로에 존재하며 자세히 살펴보면 DB, Language, OS 등 여러가지 Technology 리스트와 체크박스가 존재합니다. 기본적으로 전부 체크되어 있습니다.

Spring4Shell RCE 취약점 (CVE-2022-22965)

2 min read

지난 주 Spring4Shell 취약점으로 인해 인터넷이 또 불탈 뻔 했습니다. 다행히 Log4Shell 보단 재현하기 어렵다는 문제로 무난하게 지나갔는데요. 겸사겸사 좀 늦었지만 이슈 정리해서 글로 올려볼까 합니다.

ZAP Structural Modifier

2 min read

저는 취약점을 찾을 때 중요한 3가지를 뽑으라고 한다면 아마도 기술에 대한 이해, 대상에 대한 이해, 그리고 센스를 택할 것 같습니다. 물론 이외에도 중요한 요소들은 정말 많겠지만 이 3가지는 일할 때 가장 많이 느끼는 부분이였어요.

Ajax Spidering 시 브라우저 엔진 별 성능 비교 🏁

3 min read

ZAP의 AjaxSpider는 headless browser를 통해서 직접 브라우징하며 Spidering 하는 기능입니다. 기본적으로는 Firefox가 설정되어 있지만, 개인의 취향에 따라 Chrome, PhantomJS 등 여러가지 browser(headless or common)를 사용할 수 있습니다.

MyEnv := ZAP+Proxify+Burp

3 min read

여러분들은 보안 테스팅하실 떄 어떤 도구들을 사용하시나요? 저는 ZAP을 메인으로 그리고 Burpsuite를 보조 스캐너로 사용합니다. 제가 2021년 마지막글(“나의 메인 Weapon 이야기“)에 Proxify에 대해 언급을 했었습니다. 오늘은 이 Proxify를 이용하여 제가 새로 구성하려는 분석 환경과 이유, 그리고 이를 통해 더 얻고자 하는 것들에 대해 이야기하려고 합니다.

XSS Weakness(JSON XSS) to Valid XSS

3 min read

오늘은 XSS Weakness를 트리거 가능한 XSS로 바꾸는 방법에 대해 이야기하려고 합니다. 새로운 기술은 아니고 오래전부터 다들 사용하시던 트릭일텐데, 생각해보니 제가 따로 정리했던 적은 없어서 이참에 글로 남겨둘까 합니다.

System Hardening을 피해 RCE를 탐지하기 위한 OOB 방법들

3 min read

여러분들은 RCE(Remote Code Execution)를 식별하기 위해 어떤 방법을 사용하고 있나요? 저는 개인적으로 OOB(Out-of-band)를 즐겨서 사용합니다. Sleep 등 time 기반도 정확 하지만, 비동기 로직이 많은 요즘 time 보단 oob가 더 정확하다고 생각이 드네요. (물론 둘 다 체크하지만요 😊)

Sequential Import Chaining을 이용한 CSS 기반 데이터 탈취

2 min read

오늘은 CSS 기반의 공격 기법인 Sequential Import Chaining에 대해 이야기하려고 합니다. 자체적으로 뭔가 영향력이 있는건 아니지만, CSS를 제어할 수 있을 때 영향력을 증폭시켜줄 수 있는 방법이니 꼭 알아두고, 유용하게 사용하시길 바래요 😊

Attack Surface Detector를 이용해 소스코드에서 Endpoint 찾기

1 min read

제가 일할 때 종종 사용하는 ZAP/Burp Addon이 있는데, 최근 에러가 있어서 찾다보니 제가 한번도 블로그에서 언급한적이 없었더군요. 그래서 오늘은 그 도구인 Attack surface detector에 대해 이야기할까 합니다.

ZAP의 새로운 Networking Stack

2 min read

지난 목요일 밤 ZAP Developers Groups에 simon이 한가지 내용을 공유했습니다. 바로 ZAP의 Networking Layer에 대한 이야기고, 저는 제목을 보자마자 어떤 내용인지 직감했습니다. (제가 정말 기다렸던 내용이거든요 🤩)

Custom Payloads로 ZAP 스캐닝 강화 🚀

3 min read

오늘은 제가 최근에 ZAP에서 약간 관심있게 보고있던 기능 하나를 소개해드릴까 합니다. 바로 Custom Payloads인데요. Fuzzer나 ZAP의 Scripting engine을 사용하지 않고 조금 더 쉽게 지정된 페이로드 기반으로 테스트를 할 수 있어서 알아두시면 보안 테스팅이나 자동화 구현에서 잘 사용하실 수 있을거란 생각이 듭니다.

Paragraph Separator(U+2029) XSS

1 min read

Gareth Heyes가 재미있는 XSS 트릭을 하나 공유했는데요. Browser가 이를 처리하는 방식을 잘 생각해보면, 여러 형태로 우회하는데 사용할 수 있을 것 같단 느낌이 들었습니다.

개발자만? 아니 우리도 스크래치 패드 필요해! Boop!

1 min read

저는 종종 재미있는 앱이 있을지 앱스토어를 둘러보곤 합니다. 그러던 중 보안 테스팅에서 쓸만할 것 같은 도구를 찾아 이번 연휴동안 사용해보고, 괜찮다고 느껴서 블로그를 통해 공유해봅니다. 바로 Boop 입니다.

[Cullinan #26] Add XXE (XML External Entity)

~1 min read

컬리넌 로그 #26입니다. XXE 항목 추가하였습니다. 보통 컬리넌에 여러개 이력이 누적되면 올리려곤 하는데, 이번에는 텀이 좀 길어져서 로그로 올려봅니다.

Authz0 v1.1 Released 🎉

1 min read

Hi security engineers and hackers! Authz0 v1.1.0 has been released 🎉 First of all, I would like to thank many of you for your good feedback.

Chrome에선 이제 open 속성없이 XSS가 가능합니다.

~1 min read

XSS 벡터 중 details 태그에 ontoggle 이벤트 핸들러와 open 속성을 이용한 방법이 있습니다. Chrome, Safari, Firefox, IE 모두 사용 가능하고 on* 기반의 XSS 중 비교적 쉽게 사용자 interaction을 줄일 수 있어서 자주 사용되는데요.

[Cullinan #25] 앞으로의 계획

1 min read

컬리넌 로그 #25입니다. 사실 이번에는 업데이트 로그라기 보단 앞으로의 계획을 좀 더 공유드릴까 해서 작성해봅니다.

나의 메인 Weapon 이야기 ⚔️ (ZAP and Proxify)

2 min read

한국 기준으로 새해까지 약 30분이 남았고, 올해의 글은 이 글이 마지막 글이 될 것 같습니다. 분명 2020 회고한지가 얼마 안된 것 같은데, 벌써 2021도 회고도 이미 지나버렸네요 😱

ZAP의 새로운 Import/Export Addon, 그리고 미래에 대한 뇌피셜

1 min read

최근에 ZAP 내 여러가지 Import, Save 관련 기능들이 “Import/Export”란 이름의 새로운 Addon으로 통합되었습니다. 사용자 Interface 상에선 변화가 없어서 크게 달라진 건 없지만 이를 통해 앞으로의 ZAP에서 Import/Export 기능에 대한 방향성을 엿볼 수 있어서 글로 작성해봅니다 😎

Web Cache 취약점들을 스캐닝하자 🔭

2 min read

Web Cache Poisoning, Web Cache Deception 등 Web Cache 관련 취약점은 나름 오래된 기법이지만 요 몇 년 사이 알비노왁스(@albinowax) 등 Portswigger의 연구원들에 의해 빠르게 발전한 것 같습니다. 이러한 취약점들은 여러가지 테스팅 방법을 통해서 식별하고 Exploit 하지만 이전까진 크게 강력하다고 생각하던 도구가 없었던 상태입니다. (그나마 burpsuite의 내장 스캐너가 있겠네요…)

[Cullinan #24] Add ESI Injection and Update Others

~1 min read

컬리넌 업데이트 로그 #24입니다. ESI Injection을 추가했고, SSTI에 RCE 관련 내용 추가, 그리고 도구 업데이트가 있었습니다. 마지막으로 Cullinan의 메인 페이지 디자인의 일부를 수정(max-width 제거)했습니다.

Private OOB 테스팅을 위한 Self Hosted Interactsh

4 min read

이번 주말은 log4shell로 인해 정말 인터넷이 불타고 있습니다. 자 이제 보안담당자들은 이를 대응하고 자산에 대해 스캐닝을 진행하게 될텐데, 여기서 식별에 사용하는 대표적인 방법인 OOB(Out-Of-Band)를 알려진 서비스들(ZAP OAST, Burpsuite collaborator, Interactsh 등)을 이용하여 편하게 테스팅할 수 있겠지만, 이는 결국 외부에 callback이 발생한 서버의 IP가 남게되고, 이를 통해서 해당 서비스를 운영하는 운영하는 회사 또는 그룹 등 정보를 얻어갈 수 있는 구간이 존재하게 됩니다. (썩 좋은 그림은 아니죠)

Log4shell 전 세계의 인터넷이 불타고 있습니다 🔥 (CVE-2021-44228/CVE-2021-45046/CVE-2021-45105)

4 min read

네 바로 어제(2021-12-10) Java의 logging package인 log4j2 에서 RCE 0-day 취약점이 공개되었습니다. Service, Application에 로그를 쌓을수만 있다면 어떤 환경에서도 공격 가능성이 존재하고, 리스크가 RCE인 만큼 정말 전 세계가 불타오르고 있네요. (하하 DM도 터져나갑니다. 안볼거에요……)

웹 해커를 위한 Browser Addons

2 min read

여러분들은 보안 테스팅 시 웹 브라우저 Addon 많이 사용하시나요? 저는 한 떄 엄청나게 많이 설치해서 사용했지만, 지금은 5개 미만을 유지하는 것 같네요.

ZAP RootCA를 API와 Cli-Arguments로 제어하기

2 min read

ZAP에 새로운 Addon이 추가됬습니다. 이 Addon을 이용하면 ZAP의 인증서, 즉 Root CA를 API나 Cli등으로 컨트롤할 수 있도록 기능이 지원됩니다. 이를 활용하면 Daemon 모드로 동작하거나 CI/CD Pipeline 등에서 사용 시 조금 더 쉽게 인증서 처리를 할 수 있게 됩니다.

DOM XSS? 그렇다면 Eval Villain

2 min read

올해 초 Burpsuite에선 DOM Invador라는 도구를 공개했었습니다. 제가 가볍게 리뷰할 때에도 이야기드렸지만 DOM 기반 테스팅에선 굉장히 유용하기 때문에 Burpsuite 사용자는 물론 ZAP 등 다른 도구 사용자도 충분히 관심가지고 테스트 때 열어서 써봐야할 정도의 도구였었죠.

ZAP Browser에서 Extension 영구 적용하기

1 min read

최근 ZAP의 Extension 중 selenium 관련 업데이트가 있었습니다. 무심히 Change 내용을 봤다가 “Support for browser extension” 문구를 보자마자 반가운 마음에 바로 글 작성을 시작헀죠 😎

ZAP 스크립팅으로 빠르게 Fake Response 만들기

~1 min read

Response 변조는 인증 절차나 비즈니스 로직을 우회할 때 자주 사용되는 공격 방법 중 하나입니다. 보통은 proxy로 요청을 잡아 직접 response를 수정하여 continue 하는 형태로 테스트를 진행합니다.

Dalfox 2.6 Released 🎉

2 min read

Wow! Dalfox 2.6.0 has finally been released! This time, I improved the focus on Result and PoC object. and a new global flag called –poc-type was added. Let’s play it quickly 😎

Solving issue the POST scan in zap-cli not work

1 min read

During the test, I found that POST-based scanning(active-scan / quick-scan) was not working in zap-cli 😱 This problem is zap-cli issue, and it has already been reported as an issue below.

[Cullinan #20] LDAP Injection, ClickJacking, Cache Poisoning 그리고 개선사항

~1 min read

컬리넌 업데이트 로그 #20입니다. 예전 Jekyll 블로그에서 사용하던 것과 동일하게 Cullinan의 메인 페이지를 구성했고 Slug 부분에 개선을 해서, 제목에 약자 등 일부 내용들이 더 추가되었습니다. 그리고 LDAP Injection, ClickJacking, Web Cache Poisoning 항목을 추가했습니다 :D

New technic of HTTP Request Smuggling (chunked extension)

2 min read

오랜만에 HRS(HTTP Request Smugglin) 관련 테크닉이 추가되었습니다. 아직 실제로 공격 가능했던 사례가 있는건 아니라 오피셜은 아니지만, 어느정도 신빙성이 있어서 글로 작성해봅니다.

[Cullinan #19] Add SQLi and Cookie Bomb

~1 min read

컬리넌 업데이트 로그 #19입니다. SQL Injection과 Cookie Bomb Attack이 추가됬고, Amass 부분에 수정이 있었습니다. 그리고 이번에 chunked extension 기반의 HTTP Request Smuggling 관련 글을 작성하면서 Cullinan - HTTP Requset Smuggling 부분에도 해당 내용을 추가하였습니다.

Amass + Scripting = 최고의 서브도메인 탐색

4 min read

여러분들 Amass 많이 사용하시나요? Amass는 subdomain을 탐색하기 위한 도구들 중 하나로 ZAP과 마찬가지로 OWASP에 플래그쉽 프로젝트입니다. 또한 비슷한 도구인 subfinder, assetfinder, findomain 등 여러가지와 비교해봐도 거의 최고로 손꼽을 수 있는 도구입니다.

403 forbidden을 우회하는 4가지 방법들

2 min read

때때로 보안 테스팅 시 WAF나 Application의 로직에 따라 403 Forbidden 으로 접근이 제한되는 경우가 있습니다. 보통은 백엔드의 처리 로직을 봐야 정확하게 우회할 수 있는 포인트를 잡겠지만, 몇가지 트릭을 통해 Black Box Testing 상태에서도 이를 우회할 수 있습니다.

Cullinan 18 XST and DOM Clobbering

~1 min read

컬리넌 업데이트 로그 #18입니다. XST(Cross-Site Tracing)과 DOM Clobbering 항목을 추가했습니다.

ZAP update domains (core and addon)

~1 min read

최근에 ZAP의 업데이트 서버 주소 관련해서 확인할게 있어서 user-groups에 문의를 했었습니다. 덕분에 쉽게 업데이트 주소를 확인 했지만 메모해두면 좋을 내용들이 있어서 정리해서 글로 작성해둡니다.

ZAP 2.11 Review ⚡️

1 min read

최근에 Simon, ZAP 공식 트위터 계정에서 2.11에 대한 릴리즈가 임박했음을 알렸습니다.

Dalfox 2.5 Released 🚀

~1 min read

There was a released minor version of Dalfox after a long time. Mainly performance improvement, it detects much better than before :D

[Cullinan #16] ZIP-Slip and HPP

~1 min read

컬리넌 업데이트 로그 #16입니다. ZIP Slip과 HTTP Parameter Pollution에 대한 내용을 추가했습니다. 그리고 HTTP2 H2C Smuggling의 Tools 부분에 도구 추가로 수정이 있었습니다.

ZAP의 fuzz-script를 이용해 Fuzzing 스킬 올리기

3 min read

여러분들은 Fuzzing 많이 하시나요? 웹해킹.. 아니 대다수 보안 테스팅에서 Fuzzing은 많은 시간을 차지 하기도 하고, 반대로 시간을 줄여주기도 합니다. 오늘은 웹 테스팅에서 ZAP을 이용해 Fuzzing할 때 Script를 이용해서 조금 더 나은 테스팅을 하는 방법에 대해 이야기하려고 합니다.

Authentication Spidering in ZAP

3 min read

최근 ZAP의 Auth(Authentication, Authorization) 관련 기능과 세션에 대한 부분을 파헤치고 있습니다. 제가 잘 모르고 사용하지 않았던 기능들인데, 알고나니 지금까지 약간 답답하게 일했던 제가 부끄러워지네요.

Testing Access-Control with ZAP

3 min read

여러분들은 세션에 대한 접근 권한, Authorization에 대한 부분들을 점검하실 때 어떤 형태로 테스트하시나요?

[Cullinan #12] Add JSON/JSONP Hijacking

~1 min read

컬리넌 업데이트 로그 #12입니다. 이번에는 JSON Hijacking, JSONP Hijacking에 대한 내용 추가되었습니다. 그리고 XSS 내용이 없던 부분이 좀 있었는데, 내용 추가하였습니다 :D

ZAP에 곧 추가될 FileUpload AddOn 살펴보기

1 min read

최근에 ZAP Weekly 버전에 새로운 기능이 추가됬습니다. 바로 FileUpload 라는 AddOn 형태로 추가된 기능인데요, 이 기능은 File upload 관련 취약점을 식별하고 스캐닝할 수 있도록 도와주는 도구입니다.

[Cullinan #11] Add CSRF and SSRF

~1 min read

오랜만에 cullinan 컨텐츠 업데이트를 진행했습니다. Draft 상태였던 CSRF와 SSRF 내용 추가했고, 다른 항목(스머글링 등)들 중 일부 컨텐츠 수정을 진행했습니다.

ZAP Automation GUI

1 min read

최근에 ZAP Automation framework가 0.4 버전으로 업데이트 됬습니다. 사실 제가 0.4 버전을 기다린 것은 아래 내용 때문인데요, StackHawk에서 스트리밍으로 진행한 Automation Framework에 대한 소개 내용 중 ZAP에서 UI로 Automation Framework를 컨트롤하는 장면이 잡혔었고, Simon에게 물어보니 0.4 버전대 기능이라고 합니다.

[Faraday#2] Dispatcher를 이용한 Scanning CI

2 min read

이번 주말에는 틈틈히 Faraday 관련해서 계속 테스트해보고 있었습니다. 그 중 faraday_agent_dispatcher 라는 기능이 눈에 들어왔는데요, 이 기능은 faraday 서버에 여러 agent 붙여서 미리 지정 해둔 포맷 그리고 사용자가 전달해준 데이터 따라 스캐닝을 진행하고 결과를 faraday에 반영하는 기능입니다.

[Faraday#1] Penetration testing IDE!

4 min read

혹시 faraday라고 들어보셨나요? pentesting 관련해서 조금 찾아보다 보면 한번 쯤은 들어볼 수 있는 framework로 저 또한 예전부터 관심이 있긴 했지만, 실제로 사용해볼 일이 없어서 블로그에도 소개해드린 적이 없었네요. (보통 전 pentest 시 msf + documents 도구면 충분하다 느꼈어서… )

ZAP OAST 미리 구경하기 (for OOB)

2 min read

ZAP developers에 컨텐츠 하나가 공유되었는데요 바로 OAST에 대한 내용이였습니다. OAST는 이번에 ZAP core team(akshath)에서 신규로 개발중인 AddOn입니다. 기존 zap callback 기능에 burp suite의 collaborator 와 같이 out-of-band를 쉽게 테스트할 수 있도록 지원해주는 AddOn입니다.

[Cullinan #9] Added history of owasp top 10

~1 min read

Change Note

cullinan에 History Of OWASP TOP 10 이란 이름의 페이지를 추가했습니다. 이는 OWASP TOP 10의 변화를 한눈에 보기 위해 만든 페이지로 새로운 년도의 버전이 나올 때 마다 갱신해 나갈 예정입니다.

ZAP Plug-n-Hack을 이용한 DOM/PostMessage 분석

2 min read

Plug-n-Hack(PnH)

Plug-n-hack, 즉 PnH는 Mozilla 보안팀이 제안한 표준으로 보안 도구와 브라우저간의 상호 작용을 쉽고 유용하게 할 수 있도록 만들어진 방법을 의미합니다.

ZAP Scanning to Swagger Documents

~1 min read

OpenAPI in ZAP

ZAP은 단순히 url 리스트를 import 하는 기능 이외에도 GraphQL endpoint나 OpenAPI를 import 하는 기능을 가지고 있습니다. 여기서 OpenAPI Import를 활용하면 보통 API Spec에 많이 사용되는 SwaggerUI의 doc 데이터를 가지고 Example 코드에 맞게 API 데이터를 로드할 수 있습니다.

Customize request/response panel in ZAP

1 min read

오늘은 ZAP의 소소한 팁 하나를 공유할까 합니다. 보통 Request/Response 탭은 Layout 정도만 변경하고 기본 값을 사용하는 경우가 많은데요 사실 ZAP의 Request/Response 탭은 생각보다 디테일하게 설정이 가능합니다.

DOM Invader, BurpSuite의 DOM-XSS Testing 도구

2 min read

아.. PortSwigger에서 또 물건 하나 만든 것 같습니다. PortSwigger의 BurpSuite 스캔 성능 중 손에 꼽는 부분이 바로 DOM Testing 부분입니다. 보통의 도구들은 DOM XSS를 찾기 위해 정해진 패턴을 headless browser로 렌더링하여 테스트하거나 js 코드 내 공격에 주로 사용되는 패턴(eval, innerHTML, document.write 등)을 감지하고 사용자에게 전달해주는 형태로 동작합니다.

ZAP Passive Scan Tags와 Neonmarker 그리고 Highlighter

2 min read

많은 양의 Web URL을 분석하게 되면 눈에 잘 안들어오고, 중요한 부분들을 놓치기 마련인데 highlight 관련 기능들은 조금 더 중요한 포인트에 집중을 할 수 있도록 포인트를 잡아주기 때문에 개인적으로는 잘 활용하는게 분석함에 있어서 큰 도움이 된다고 생각합니다.

PDF 암호화와 User-password 그리고 Owner-password

2 min read

제가 최근에 pdfcrack을 통해 pdf 파일에 걸린 패스워드를 크랙하는 내용으로 을 썼었는데요. 이는 pdf 파일 크랙떄문에 메모 차 작성한 글이였고, 오늘은 pdf 파일의 암호화 자체에 대해 이야기할까 합니다. 그럼 pdf의 암호화와 user-password, owner-password 에 대해 알아보도록 하죠. (간단한 내용이에요)

PDF 파일 Password Crack

1 min read

pdf 패스워드 크랙할 일이 있어서 도구랑 간단하게 사용방법 메모해 둡니다 😁

ZAP Automation

2 min read

올 초에 처음 열린 ZAPCon 2021에서 ZAP Automation at Scale이란 세션이 있었습니다. 그 때 당시에는 그냥 ZAP Automation Addon을 통해 기존 자동화 작업을 좀 더 쉽게 구성할 수 있다 정도로 받아드렸었는데, 최근에 Scan Policy 관련해서 비슷한 고민을 하다보니 ZAP Automation의 장점이 눈에 보였습니다.

ZAP Token Generation and Analysis 살펴보기

1 min read

ZAP에는 Token Generation and Analysis란 Addon이 있습니다. 사실 이름만 보고 예전부터 설치는 해두었는데 한번도 사용하지 않았던 것 같네요.. 그래서 오늘 한번 사용해보고 정확히 어떤 도구인지, 어떤 용도로 사용할 수 있을지 글로 작성해봅니다.

Bypass host validation with Parameter Pollution

1 min read

오늘은 host validation 로직 우회 때 사용했던 간단한 팁 하나 공유해봅니다. 뭐 누구나 아는 내용이라 별거 없긴 하지만, 기록으로 남겨두어야 나중에 한번에 관련 내용들을 정리할 때 쉽게 찾고 사용할 수 있어서 블로그 글로 작성해둡니다.

Options rule configuration in ZAP

1 min read

ZAP에서 옵션쪽 좀 보다가 Rule configuration 이란 부분이 있는데, 제가 아는 일반적인 스캔 룰 설정이라는 달라서 긴가민가한 부분이 있어 내용 정리해둡니다.

CSS Injection Bypassing Trick (with dashdash and var)

1 min read

CSS(Style) Injection

CSS Injection은 XSS나 HTML Injection과 같이 웹 상에서 CSS, 즉 스타일 시트에 Injetion이 가능한 경우를 의미합니다. 보통 사용자에게 직접적인 영향력이 있는건 아니지만, 스타일 시트 제어를 통해서 매핑된 이벤트 핸드러를 통해 XSS나 다른 기능을 수행시키거나 교모한 피싱 페이지를 구성하는데 사용할 수 있습니다.

The reverse tabnabbing has weakened more

1 min read

Reverse tabnabbing은 리스크가 높은 공격은 아니지만 피싱에서 충분히 사용될 수 있기 때문에 보안을 조금 더 신경쓴다면 분명이 체크하고 가야할 부분입니다. 해당 공격에 대한 설명은 아래 링크를 참고해주세요.

Import remote JS in IMG tag. for bypass XSS

1 min read

밤에 트윗을 보다가 간단한 XSS 트릭을 봤는데 특별히 뭔가가 있는건 아니지만 가끔씩 CSP 우회에도 사용될 수 있을 것 같아 글로 작성해둡니다.

Secure JWT and Slinding Sessions

3 min read

Sessions 이란?

Sessions은 컴퓨팅에서 비슷하지만 여러 의미로 사용되는 용어입니다. 일반적으로 상태를 의미한다고 보면 될 것 같고, 웹에서는 HTTP가 비 연결형 프로토콜이기 때문에 서버가 기존에 접속했던 클라이언트인지 확인할 수 있는 수단으로 사용됩니다. (파일 쿠키랑 비슷하죠. 다만 처리에선 약간 다르긴합니다.)

OOB Testing with interactsh!

2 min read

OOB(Out-Of-Band)와 Callback 서버

SSRF, RCE 등에서 공격 페이로드의 성공 여부를 어떠한 방식으로 체크하시나요? 보통은 원격지의 서버를 두고 HTTP나 DNS 요청이 발생하는걸 감지해서 체크하곤 합니다. BurpSuite엔 이러한 작업을 위해 collaborator라는 아주 유용한 도구(사용자별로 별도의 도메인과 callback-notify를 제공)가 있고 이를 기반으로한 여러가지 확장기능(taborator, activescan, collaborator everywhere)이 있습니다.

Get webpage screenshot with gowitness for CICD

~1 min read

What is gowitness

gowitness는 버그바운티 커뮤니티에서 잘 알려진 도구로 대량의 URL을 대상으로 웹 스크린샷을 빠르게 찍을 수 있는 도구입니다.

RCE with exposed k8s api

1 min read

휴가중이라 피드나 트윗등을 자주 보진 못하지만 k8s RCE 관련하여 글이 있어서 가볍게 살펴보고 포스팅해봅니다.

[Cullinan #6] Add reverse tabnabbing

~1 min read

Reverse Tabnabbing 관련해서 기존에는 phoenix에 테스트용 페이지만 만들어두고 썼었는데 내용 정리좀 할겸 cullinan에 추가했습니다.

OpenData for bug-bounty

~1 min read

최근에 개인 resources 페이지를 리뉴얼 했습니다. 기존에는 그냥 자주 사용하는 온라인 도구들의 링크 정도만 있었는데, 테스팅 / 워드리스트 / 버그바운티 도메인 등 관련해서 주기적으로 파일을 생성하여 공개하려고(어차피 거의 저만 쓰긴 하겠지만..) 간단하게 추가했습니다.

ZAP context based scanning

1 min read

ZAP에서의 quickscan이나 spider, active scan 등을 기본적으로 다중 URL을 지원하지 않습니다. 그래서 예전에 아래 포스트와 같은 방법으로 API를 이용한 방법, 그리고 별도의 도구를 만들어서 스캔하는 방법을 사용하곤 했습니다.

well-known 디렉토리와 securty.txt 그리고 humans.txt

1 min read

간혹 웹 페이지를 들여다보면 .well-known 디렉토리를 만나게됩니다. 제 사이트도 올 1월에 security.txt를 추가했었는데, 그 땐 단순히 보안 취약점이나 이슈에 대한 제보를 위해서 만들었었습니다. 오늘은 이 .well-known 디렉토리의 의미와 어떻게 사용되는지 조금더 살펴볼까 합니다.

How to set ZAP active scan input vector in daemon mode

1 min read

What is ZAP Active Scan Input Vector?

Active Scan Input Vector는 ZAP에서 Active Scan 시 Injection 영역을 의미합니다. 물론 특정 Injection 취약점을 의미하는 건 아니고 점검할 부분이라고 보시는게 더 적합합니다. ZAP의 기본값은 URL + POST로 기본적으로 URI/Param 등에 대해서 테스트를 진행하지만 쿠키나 헤더등에는 테스트를 진행하지 않습니다. (시간이 오래걸려서, 이는 ZAP이 CICD에 많이 들어가기 때문)

Make and change default scan policy in ZAP cli interface

1 min read

ZAP Scan Policy

ZAP은 Passive/Active Scan에 대한 정책을 커스텀하게 관리할 수 있도록 제공하고 있습니다. 이는 단순히 해당 스캔 모듈의 사용 여부 뿐만 아니라 Risk level도 조정할 수 있어 스캐너로 활용하기에도 좋습니다. 그래서인지 DevSecOps를 구축할 때 ZAP은 자주 거론되는 DAST 스캐너이기도 하죠.

ZAP Forced browse 와 Fuzz에서 Sync wordlist 사용하기

3 min read

Forced Browse는 딕셔너리 기반 또는 단순 브루트포스릍 통해서 서비스에서 경로와 페이지를 식별하는 방법입니다. 아주 전통적이지만 Recon 측면에선 아직도 굉장히 중요한 부분이기도 합니다. 그래서 이러한 작업들을 위해서 기존의 dirsearch, dirbuster 등의 도구부터 최근 feroxbuster, gobuster 등 여러가지 기능과 개선을 적용한 새로운 도구들도 끊임없이 나오고 있습니다.

Zest와 ZAP을 이용한 Semi-Automated Security Testing

3 min read

What is Zest script

Zest script는 ZAP에서 제공하는 스크립팅 언어로 ZAP 내부에서의 요청과 처리 등 많은 기능을 JSON 기반의 스크립트화 하고 사용/관리할 수 있는 언어입니다. BurpSuite 등 다른 메뉴얼 테스팅 도구에서는 없는 ZAP만의 강점인 기능이죠.

How to share other device settings in Axiom

1 min read

제 Axiom 세팅은 주로 사용하는 맥북에 되어있습니다. 최근에 집에 있는 서버에도 동일하게 세팅하기 위해서 axiom-install을 진행했는데요, instance 정보를 새로 만드는 작업이 진행되었습니다. (이미 난 있는데?)

[Cullinan #2] Added change log

~1 min read

Cullinan에서 change log를 추가했습니다. 간단한 방식으로 구현했고, 이력 관리차 글로 남겨둡니다.

How to applying IntelliJ theme in ZAP

1 min read

어제 BurpSuite의 Customizer에 대한 글을 썼었습니다. BurpSuite에서 FlatLaf의 IntelliJ Theme를 사용할 수 있도록 지원해주는 확장 기능이였고, 글 말미와 댓글에도 작성했듯이 ZAP 또한 2.10 버전부터 FlatLaf를 사용하고 있기 때문에 구현이 가능할거란 생각이 들었었습니다.

Burp Customizer! Change your burpsuite theme

2 min read

There has been a significant change in UI since version 2020.12 of Burp site. (Personally, I’m unsure) The most important part is the change of LAF(Look and Feel)’s class to PlateLaf. This class can also support other themes developed for IntelliJ Platform, enabling it to apply different themes to the BuffSuite.

[Cullinan #1] 컬리넌 프로젝트 소개

1 min read

제가 블로그를 운영하는 가장 큰 이유 중 하나는 개인적인 정리가 목적입니다. 물론 노션이나 다른 도구들로 따로 정리하지만, 기술에 관련된 내용들은 아무래도 블로깅을 통해 정리하는게 익숙하다 보니 긴 시간동안 계속 이렇게 작성하게 되는 것 같습니다.

Hack the browser extension 🚀 (웹 브라우저 확장 기능 취약점 점검하기)

5 min read

새해 첫글입니다. 사실 12월 마지막 글로 작성하려고 했는데, 마무리를 못해서 새해 첫글이 되어버렸네요. 최근에 브라우저 확장 관련해서 기존에 알던 것 보다 조금 더 리서치할 일이 있었는데, 겸사겸사 정리할겸 분석 방법에 대해 글로 정리해봅니다.

Security considerations for browser extensions

5 min read

브라우저 확장 기능의 보안 관련하여 테스트할게 필요하여 제가 알던 내용에 조금 더 리서치하여 글로 작성해 봅니다. 우선 브라우저 확장 기능은 웹 브라우저에 추가되는 작은 단위의 앱으로 Chrome / Safari / Firefox 등등 다수 브라우저에서 웹 브라우징, 광고차단, 각종 테스트 기능 등 여러 사용자들에게 서비스되고 있습니다. 이는 앱 생태계와 동일하게 개인/기업 등등의 개발자가 규격에 따라 만들고 스토어에 업로드 후 승인 절차를 통해 등록되는 것으로 알고 있습니다.

ZAP 2.10 Review ⚡️

3 min read

2020 마지막이 얼마 남지 않은 오늘 드디어 ZAP 2.10.0이 릴리즈 되었습니다. 그동안 dark mode 등을 이유로 weekly 버전을 사용했었는데, 이제는 공식 버전으로 넘어가도 좋을 것 같네요.

Why I Use ZAP

5 min read

Army-Knife for AppSec

Application Security 또는 Pentest, Bugbounty 등 전반적인 Offensive security 관련 일에서 가장 핵심적인 도구는 Burp/ZAP 과 같은 Proxy 도구입니다. 초기에는 Proxy 도구라는 성향이 강했지만, 이제는 Proxy 도구라기 보단 Army-Knife 라고 보는게 더 적합할 것 같습니다.

Make cloud base ZAP Scanning Environment Using github-action

1 min read

Hi hackers and bugbounty hunters :D Today, I talk about building a github-action-based ZAP scanning environment. As you know, there is no time limit for public repo, so you can configure a cloud-based vulnerability scanner for free 😉

Setup a Pentest environment with Axiom

3 min read

What is Axiom

Axiom is a dynamic infrastructure framework to efficiently work with multi-cloud enviornments, build and deploy repeatable infrastructure focussed on offensive and defensive security.

Docker scratch image from a Security perspective

2 min read

최근 도커 관련해서 테스트하던 중 Scratch 라는 이미지를 보게 되었습니다. 개인적으론 처음보는 이미지인데, 특이하게도 보편적인 OS에서 사용되는 명령어부터 여러가지 중요한 바이너리나 설정까지 없는 독특한 이미지였죠. 찾다보니 생각보다 재미있는 이미지여서 관련 내용과 저의 생각을 약간 더해서 글을 작성해봅니다.

Forcing HTTP Redirect XSS

1 min read

TL;DR

If you are in English, I hope you read this! I’ve tested more, but there’s no unusual pattern. If you’re curious about my story, try using a translator! not writing in two languages because I am little tired today.

Amass, go deep in the sea with free APIs

5 min read

There are several types of Subdomains scanning tools. Amass, Subfinder, findomain, etc… In my opinion, the tool at its peak is Amass, and many Bugbounty hunters have automated systems through Amass. Today I’m going to talk about ways to expand Amass’ datasources and get more results.

앨리스(Alice)와 밥(Bob) 그리고 캐롤(Carol), 이름의 의미는?

1 min read

보안쪽에서 자주 나오는 사람 이름이 있습니다. 바로 앨리스(Alice)와 밥(Bob), 그리고 캐롤(Carol)인데요. 02랑 이야기하던 중 A/B/C 이야기가 나와 찾다보니 제가 아는 것 보다 종류가 훨씬 많고 각각 의미도 다 부여되어 있더군요. (전 그냥 알파벳 순서에 따라서 1~n번째 당사자라고 생각했는데..) ​ 알아서 나쁠껀 없으니 가볍게 정리해서 글로 올려둡니다 :D ​

Names

Future of the WebHackersWaepons

1 min read

Concept feature in future

So far I have been github repoing tools simply to enumerate them, but we’re thinking about how we’ll be able to easily install/uninstall/update the tools that are included in the future.

Scanning multiple targets in ZAP

1 min read

저는 ZAP과 Burp pro 모두를 사용하고 있습니다. 각각 도구가 가진 특성과 라이선스적인 문제로 인해서 같이 사용하고 있는데, 사실 누가 좋다고 우위를 가리기는 어렵습니다. (워낙 특성도 다르고, 각 도구가 바라보는 목표도 분명히 달라요)

Transient events for XSS(sendBeacon?!)

1 min read

I saw a new post in portswigger research today. It’s about how to successfully prove XSS when the attack phrase is blocked by WAF, but it’s short but interesting, so I’m writing it.

How to add custom header in ZAP and zap-cli

3 min read

The zap-cli is a tool that helps make ZAP easy to use on the command line. From simple scanning to CI/CD Pipeline, it’s a tool that’s used everywhere. Unlike other scanners, it does not support custom headers.

NMAP CheatSheet

2 min read

Cullinan(Wiki) 프로젝트를 진행하면서 Cullinan - Nmap에 다시 정리해두었습니다. 해당 페이지가 최신이니 참고 부탁드려요 😎

E-mail 포맷을 이용한 여러가지 Exploiting 기법들

2 min read

Recently, the nahamcon2020 was in over. I difficult to watching it in my time zone, so I just looked at the documents after it’s over. They were all very interesting and I learned a lot of new things. Today I’m going to talk about the email attack that I saw the most interesting among them. Of course, if you using english, best document is original material, so refer to the link below, and I will write only in Korean today!

Find reflected parameter on ZAP for XSS!

1 min read

올해부터 버그바운티 시 사용하기 좋은 웹 해킹 도구들을 정리하고 있습니다. 그중엔 BurpSuite와 ZAP의 확장 기능 컬렉션도 있고 트윗통해 추천을 받던 중 쓸만한 ZAP 확장 기능을 찾아 글로 간략하게 작성해봅니다.

How to use DalFox’s Fun Options (if found notify , custom grepping)

7 min read

As you can see from my blog and tweet, I recently full-change(new project…) my XSpear and created an XSS Scanning tool called DalFox. Today, I’m going to share some tips for using DalFox. 제 블로그나 트윗을 본다면 알겠지만, 최근 XSpear를 갈아엎고 DalFox라는 XSS Scanning 도구를 만들었습니다.

New my XSS scanning tool “DalFox” :D

3 min read

Hi, hackers and bugbounty hunters. Today I’m going to talk about my new XSS tool, DalFox. I’m sure there are a lot of bugs because it’s still under development, but I’m going to talk it lightly now because it’s somewhat functional and has a critical bug fixed!

How to import external spidering output to Burpsuite or ZAP

1 min read

Normally, BurpSuite or ZAP is the main tool of testing during bugbounty or security testing. It’s good to navigate directly with the spider function in there, but sometimes you need help from an external crawler. (especially when using a waybackmachine) 평소에 버그바운티나 테스팅 시 BurpSuite에서 주로 테스팅을 진행합니다. Burp에서의 spider 기능과 직접 돌아다니는게 좋긴하지만, 때론 외부 크롤러의 도움이 필요할때가 있습니다. (특히 waybackmachine을 사용할땐요)

Recon using fzf and other tools. for bugbounty

4 min read

때때로 버그바운티를 하다보면, 굉장히 많은 파일을 만나게 됩니다. 특히 meg, gospider 등 recon 도구를 사용한 결과의 양은 상상을 초월합니다.

Ways to XSS without parentheses

1 min read

Introduction

간만에 @garethheyes 가 굉장히 쓸만한 테크닉을 하나 공유했습니다. DOMMatrix 를 이용해서 괄호 검증을 나가는 방법이고, 기존에 사용하던 방법들에 어려움이 있을 때 참고해볼만한 기법입니다. 꼭 한번 읽어보세요.!

Find S3 bucket takeover , S3 Misconfiguration using pipelining(s3reverse/meg/gf/s3scanner)

1 min read

Hi hackers! Today, i’m going to talk about easy-to-find methods using S3 Bucket takeover and Misconfiguration (Write/Read…). 오랜만에 글을 쓰는 것 같네요. 요즘 코로나19로 인해 재택근무를 한달넘짓 한 것 같은데, 평소보다 일을 더 많이하게 되는 것 같습니다. 덕분에 블로그에 약간 소흘했던 것 같은데요, 다시 가다잡고 글 작성해봅니다. 오늘은 S3 Bucket takeover와 Misconfiguration(Write/Read, etc..) pipelining을 이용하여 쉽게 찾는 방법들에 대해 이야기하려고 합니다.

Recon with waybackmachine. For BugBounty!

2 min read

I’m busy with work these days, so I think I’m writing in two weeks. (Actually, I couldn’t write it because I was tired. LOL) Today I’m going to share a tip that I used a lot on bugbounty. 요즘 일로 인해 바빠서 거의 2주만에 글을 쓰는 것 같습니다. (사실 피곤해서 못썼어요..ㅋㅋ) 오늘은 내가 버그바운티에서 자주 사용하던 팁 하나를 공유하려고 합니다.

Using the Flat Darcula theme(dark mode) in ZAP!!

~1 min read

트위터를 보던 중 사이먼의 어마어마한 트윗을 보게되었습니다. 바로 ZAP의 Dark 모드 지원에 대한 이야기였는데요. 가볍게 리트윗했더니 이미 commit 된 내용이고 바로 사용해 볼 수 있다고 합니다. 그래서 아직 Weekly 버전에도 반영되지 않았지만, 미리 체험해보기로 하겠습니다.

Find testing point using tomnomnom’s tool, for bugbounty!

3 min read

I recently watched a video that looked for inspection points in a unique way from Stok’s video(interviewed tomnomnom) So, today, I’m going to introduce you to some of the tools and techniques introduced in that video. 최근에 Stok 영상 중 tomnomnom 를 인터뷰한게 있어서 보던 중 특이한 방식으로 점검 포인트를 찾는 영상을 보게되었습니다. 그래서, 오늘은 해당 영상에서 소개된 툴과 기법들 중 일부를 가볍게 소개하려고 합니다. (저도 정리가 필요해서리..)

First new XSS Payload of 2020(svg animate, onpointerrawupdate)

~1 min read

Hi hackers and bugbounty hunter! Recently, two previously unknown XSS Payloads were disclosure one after another. It’s not a payload that’s very difficult to understand, so I’ll share it briefly! 최근 기존에 알려지지 않은 XSS Payload 2개가 연달아 공개됬습니다. 이해에 큰 어려움이 있는 페이로드는 아니니, 간략하게만 내용 공유할게요!

BurpSuite 2020.01 Release Review, Change HTTP Message Editor!

1 min read

The first release of Burp 2020.01 was released recently. I think end of last year, the Navigation Embedded Browser in the 2.1.05 release may not be a big change because of its impact, but it has improved a lot in usability because this update. 최근에 Burp 2020.01 첫 릴리즈가 나왔습니다. 사실 작년 말쯤에 2.1.05 릴리즈에서의 Navigation Embedded Browser가 워낙 임팩트가 있어서 큰 변화라고는 못느끼겠지만, 그래도 사용성에 있어서 굉장히 많은 부분들이 개선되었습니다.

Metasploit에서 Database connection이 자주 끊긴다면?

1 min read

간혹 Metasploit을 사용하고 있으면 갑자기 DB Connection이 사라지곤합니다. 제 환경에서도 특정 PC에서 유독 잘 끊어지는데요, 간단한 트릭으로 쉽게 해결이 가능합니다.

Write Metasploit Module in Golang

2 min read

Metaploit에서 2018년 12월부터 golang module 지원이 시작되었습니다. 저도 잘 모르고 있다가 최근에서야 알게 되었네요.

Cookie and SameSite

5 min read

올 2월부터 Chrome 브라우저에서 SameSite=Lax가 기본값으로 변경됩니다.

JSON Hijacking, SOP Bypass Technic with Cache-Control

3 min read

Today, I write post at technique that bypasses SOP using cache during JSON Hijacking. It’s not always available because conditions are necessary, but if the conditions are right, you can get an unexpected good result. (오늘은 JSON Hijacking 중 cache를 이용하여 SOP를 우회하는 기법에 대해 이야기하려고 합니다. 물론 이 방법은 조건이 필요하기 때문에 항상 사용할 수 있진 않지만, 조건만 맞는다면 뜻밖의 좋은 결과를 얻을수도 있습니다)

Stepper! Evolution repeater on Burp suite

1 min read

오늘은 Burp suite의 확장 기능 하나를 소개할까 합니다. 개인적으로 최근에 찾은 것 중에 정말 쓸만하다고 느끼는 확장 기능입니다.

XSpear 1.3 version released!

~1 min read

Hi hackers! I worked hard to finish the XSpear 1.3 version with this year’s last release. and, 1.3 version released!

BurpSuite에서 Request 정보를 포함하여 CLI 앱 실행하기)

2 min read

오늘은 Burp suite에서 외부 앱을 실행하는 방법에 대해 이야기하려고 합니다. 사실 비슷한 내용(ZAP)으로 예전에 글을 쓴적이 있었는데요, 드디어 관련 확장 기능이 업데이트되어서 Burp suite에서도 동일한 짓을 할 수 있습니다.

Test with GoBuster! (Powerful bruteforcing tool of golang)

2 min read

directory 스캔 도구의 dirbuster가 아주 강세였습니다만, 올해부터 gobuster가 더 많이쓰이는 것 같은 느낌이 듭니다. 당연히 스캔 도구는 이젠 golang이 압도적일겁니다. (고루틴과 고채널의 힘이란..) The directory scan tool’s dirbuster has been very strong, but it feels like gobuster going to be more popular this year. Of course, now the scanners are going to be dominated by golang.

Two easy ways to get a list of scopes from a hackerone

1 min read

Hi hackers, I write post for easy get bugbounty target scope. simple 2 way. 해커원 버그바운티 프로그램들을 보면 타겟 도메인이 굉장히 많은 경우가 있습니다. 매번 Scope 처리하거나, 테스트 할 때 확인하기 불편한감이 있는데, 이를 쉽게 처리할 수 있는 2가지 방법에 대해 이야기할까 합니다.

Check logic vulnerability point using GET/HEAD in Ruby on Rails

3 min read

최근에 Github OAuth flow bypass 취약점이 공개되었습니다. 이 취약점은 Rails 앱의 특성을 이용한 취약점이고, Github만의 문제가 아니고 패치로 모든 Rails 앱을 보호할 수도 없습니다. Today, I going to review one vulnerability that needs to be checked in the Rails App environment through the Github OAuth flow bypass vulnerability. (B recently shared something interesting to me.)

Burp suite using Tor network

1 min read

버그 바운티를 하다보면, 간혹 차단되는 경우가 있습니다. 다시 차단을 우회하고 접속할 수 있는 방법에는 여러가지가 있으나 tor를 이용하면 간단하게 처리할 수 있습니다.

CPDoS(Cache Poisoned Denial of Service) Attack for Korean

4 min read

최근에 CPDos에 대한 이야기가 핫합니다. HTTP Desync Attack 때 이미 경험했던 부분이지만, 여러모로 이슈화 되다보니 일적으로나 개인적으로나 테스트를 좀(강제로..) 해보게 되었네요.

Find Subdomain Takeover with Amass + SubJack

1 min read

Subdomain takeover was once a very popular vulnerability. It’s still constantly being discovered. Of course, there are so many hackers running automated code that it’s hard to actually find it. but you’ll find it with lucky. and from the corporate security point of view, you have to check it out. so i share it.

jwt-cracker를 이용한 secret key crack

~1 min read

JWT는 내용에 대한 서명을 내용 뒤에 붙여주어 위변조를 감지할 수 있습니다. 간혹 secret이 간단하게 설정된 경우에는 secret을 찾고 변조된 JWT를 만들 수 있는데, 이를 인증에 사용하거나 중요 로직에서 데이터를 읽어 사용하는 경우 큰 보안적인 리스크를 가지게됩니다.

Bypass referer check logic for CSRF

2 min read

Referer header check is probably the most frequently used CSRF countermeasure. It’s easier to implement and less performance issues than the token approach, so it’s the preferred approach, and that’s the some risk for bypass.

New Technic of HTTP Desync Attack

~1 min read

After the HTTP Desync Attack announcement, the bugbounty hunters and corporate security personnel seem to be very busy. Albino recently announced that he would be writing additional articles, and new post were posted on the portswigger blog.

Path Traversal pattern of ../

~1 min read

Path traversal 페이로드 관련해서 툴 사용이 어려울 때 매번 타이핑하기 귀찮아서 하나 만들어두고 쓰고 이었습니다. cheatsheet쪽에 정리하려다가, 아직 개편(진행중이랍니다..)중이고 이후에 어떤 형태로 나타낼지 자리잡히지 않아서 글로 미리 작성해둡니다.

Bypass host validation Technique in Android (Common+Golden+MyThink)

2 min read

SSRF, CSRF, Open Redirect 등 사용자로부터 입력받은 URL을 검증해야할 일은 많습니다. 직접 검증 로직을 하나하나 구현하는 방법도 있지만, 보통은 각 언어에서 제공하는 메소드를 통해 host, scheme를 분리한 후 검증하는 것이 좋은 방법입니다.

OWASP Amass - DNS Enum/Network Mapping

1 min read

OWASP Amass는 OWASP에서 go로 만든 DNS Enum, Network Mapping 도구이자 Project입니다. Recon, OSINT 도구로 보시면 될듯하고 성능은 아직 체감상 느껴지진 않으나 지원하는 기능의 범위가 넓어서 활용도가 높은 프로그램으로 생각됩니다.

Bypass blank,slash filter for XSS

1 min read

⚠️ XSS에 대한 전반적인 내용은 Cullinan > XSS 페이지에서 관리하고 있습니다. 해당 페이지에서 최신 데이터가 유지되니 참고 부탁드려요 :D

JSONP Hijacking

3 min read

Hi hackers. It’s a long time I didn’t write blog post. I found JSONP Hijacking a not SOP case. I’m going to briefly explain it. 오랜만에 SOP우회가 아닌 JSONP Hijacking 발견해서 간략하게 내용 풀어봅니다.

Event handler for mobile used in XSS (ontouch*)

~1 min read

Some event handlers do not appear in the OWASP list. It is a touch event like ontouch*. It is a limited item on mobile devices, so it has a less effective effect than general purpose, but it is a good item to trigger XSS.

HTTP Request(ZAP, Burp) Parsing on Ruby code

1 min read

XSpear 관련해서 이런 건의사항이 하나 있었습니다. Burp, ZAP 등에서 사용하는 패킷 데이터를 파일로 저장한 후 옵션을 주어 읽으면 자동으로 URL, Header 등을 파싱해서 사용하는 형태를 말씀하신 것 같습니다.(마치 sqlmap의 그것 처럼)

XSS payload for escaping the string in JavaScript

~1 min read

오늘 오후쯤 신기한 페이로드를 하나 찾아서 메모해뒀다가 글로 작성해봅니다. 아마도 자바스크립트 내부에 코드가 삽입되었지만 문자열을 탈출할 수 없을 때 사용할 수 있으며 이런 형태의 패턴이 들어가는 곳도 은근히 있을 것 같습니다.

Run other application in ZAP 🎯

2 min read

ZAP has one interesting feature. It is a function that can use external applications. This makes it easier and more powerful for security testing to work with external tools. Today’s post is how to use the Apply bridge(?) in ZAP.

XSS Payload without Anything

1 min read

What is XSS Payload without Anything?

When I work for a company or bug bounty, the unexpected hurdle is a protection(xss filter) of special char in the JS(Javascript) area. So I am devising a way to easily solve these problems, and one of the processes is this document.

Ruby on Rails Double-Tap 취약점(CVE-2019-5418, CVE-2019-5420)

4 min read

간만에 취약점 리뷰해봅니다. 올 봄에 정리한번하고 최근에 추가로 정리했던거라 머리속에서 날아가기 전에 블로그 글로 남겨보아요. 우선 올 해 3월 정도에 레일즈 관련 취약점이 3개정도 올라왔었습니다. CVE-2019-5418 ~ 5420 이슈인데, 결과적으론 Rails에서 시스템 파일을 읽고, 명령 실행까지 가능한 3가지였습니다.

ZAP에서 Request/Respsponse 깔끔하게 보기

~1 min read

Problem

ZAP에서 Burp의 Repeater와 비슷한 역할을 하는 도구가 Requester라는 확장기능입니다. (내장 기능도 있지만 여러모로 부족하죠.)

ZAP 2.8 Review ⚡️

1 min read

드디어, 정말 드디어 ZAP 2.8이 릴리즈 되었습니다.

How to fuzzing with regex on ZAP Fuzzer

1 min read

ZAP Fuzzer is a very useful tool for reply attack, brute force, and multiple entropy calculations. Personally, I think it’s better than the burp suite intruder (it’s more flexible).

ZAP에서 정규표현식을 이용하여 웹 퍼징하기

1 min read

ZAP의 Fuzzer는 reply attack, brute force 및 여러 엔트로피 계산에 있어 굉장히 유용한 도구입니다. 개인적으로는 Burp suite의 intruder보다 더 유연하다고 생각되네요. ZAP Fuzzer에서 Regex을 이용해서 페이로드 리스트를 만들고 테스트할 수 있는데, 오늘은 그 이야기를 좀 해볼까 합니다. 시작하죠.

침투테스트 약간 유용한 nmap NSE 스크립트 4가지

3 min read

오늘은 nmap NSE 스크립트 4개에 대해 글 작성해봅니다. 음, 초안?은 좀 써놓은지 되었는데, 최근에 여러모로 신경쓸일이 많아서 이제서야 글 올리게되네요. 우선, 신박한 내용은 아니고 그냥 보편적으로 많이들 쓰시는 스크립트 4개정도 추려봤습니다. 혹시나 좋은 스크립트를 아신다면 댓글로 공유해주시면 정말 감사하겠습니다 :)

How to protect iframe XSS&XFS using sandbox attribute(+CSP)

1 min read

iframe에는 sandbox라는 속성이 하나 있습니다. 이는 iframe 사용에 있어서 좀 더 안전하게 사용할 수 있도록 보조해주는 정책인데요, CSP와 함께 잘 사용된다면 굉장히 튼튼한 iframe 정책을 유지할 수 있어집니다.

ZAP(Zed Attack Proxy)의 4가지 모드(Four modes of ZAP)

~1 min read

ZAP을 처음 썼을 때 딱 바로 궁금했던게 있었습니다. 바로 좌측 상단의 Mode들인데요, 찾아볼까 하다가 그냥 넘어갔었는데, 드디어… 대충 어떤건지 글로 작성해봅니다.

MacOS에서 Proxy 설정하기(for ZAP, BurpSuite)

~1 min read

MacOS에서 프록시 설정하는 방법 메모해둘까 합니다. 사실 뭐 별다른건 아니고.. 다른 OS에서 직접 설정하는 것과 동일합니다. 다만 MacOS의 경우 좀 더 On/Off가 쉬운 편이라 별도의 프로그램이 필요하단 느낌을 받진 않았네요.

🦁 Brave Browser = 보안 + 속도 + 새로운 시도

2 min read

최근에 브라우저 하나를 접했습니다. 바로 Brave라는 웹 브라우저인데요, 지금까지 쓰던 오페라를 한번에 밀어내고 Safari, Firefox와 함께 저의 주력 브라우저로 선택되었습니다.

느린 ZAP을 빠르게 만들자! Zed Attack Proxy 최적화하기

~1 min read

취약점 분석에서 필수적으로 사용되는 도구 중 하나인 ZAP(or Burp 이지만, 이번 포스팅에선 ZAP만 다룹니다)은 많은 기능을 가지고 있지만, 모든 기능을 한번에 사용하기에는 확실히 속도를 걱정하지 않을 수가 없습니다.

Metasploit-framework install & Setting on MacOS

~1 min read

macos에서 Metasploit-framework 설치하는 방법에 대해 메모합니다. 음 솔직히 리눅스 버전이랑 거의 동일한 것 같은데, 최근 버전이라 그런가 path나 db 설정도 자동으로 해주네요.. (오.. 소스코드 받아서 하다가 패키지로 바꾸니깐 신세계)

Kage(GUI Base Metasploit Session Handler) Review

1 min read

이번주중이였나요, kitploit에 눈길이 가는 툴 하나가 올라왔습니다. 바로 Metasploit의 shell sessions을 관리하는 웹 도구인 Kage 입니다.

XSS with style tag and onload event handler

~1 min read

지지난주인가.. 트위터 보다가 눈에 들어온 XSS Payload가 있어 공유드립니다. (포스팅해야히고 따로 써놓고, 이제야 글로 쓰네요..)

Bypass SSRF Protection using HTTP Redirect

1 min read

오늘도 SSRF 우회 패턴 정리해봅니다. 자주 쓰던 방법 중 하나인데 최근에 제대로 먹혀서 기분이 좋네요. 별다른건 아니고 HTTP Redirect를 이용한 우회 방법입니다.

Compiler Bomb!

1 min read

Compiler Bomb라고 들어보셨나요? 취약점 분석 하다가 알게된 부분인데, 종종 상황에 따라 테스팅이 필요할 수도 있어서 간략하게 정리해둡니다.

Custom Scheme API Path Manipulation과 트릭을 이용한 API Method 변조

2 min read

앱을 테스트 하다보면 Custom Scheme에서 발생한 API 요청 중 일부에 대해 주소 변조나 API 로직을 바꿀 수 있는 부분이 있을 때가 있습니다. 다만 실제로 중요한 요청들은 RESTful 하다면 POST/PUT/DELETE 등으로 구현되는데요. 웹을 컨트롤할 수 있는 앱 스킴들은 보통 GET 요청으로 강제되기 때문에 우리를 불편하게 하곤 합니다.

APT package manager RCE(Bypass file signatures via CRLF Injection / CVE-2019-3462)

3 min read

최근에 apt 패키지 매니저 관련해서 RCE 취약점이 나왔었습니다. 물론 쉽게 공격 가능한 조건은 아니라 아주아주아주아주 크리티컬하진 않지만, 그래도 데비안 계열 배포판에선 무조건적으로 쓰이는 패키지 관리 툴이기 떄문에 여파가 좀 있었던 것 같습니다.

Metasploit-framework 5.0 Review

2 min read

지난 목요일 Rapid7 블로그에 글이 하나 올라왔습니다. 바로 msf 5.0 즉 major 버전 업데이트에 대한 이야기입니다. 큰 업데이트인만큼 어떤점들이 바뀌는지 살펴보도록 하죠.

Hashicorp Consul - RCE via Rexec (Metasploit modules)

1 min read

아침에 출근길에 edb 보던 중 hashicorp에서 제공하는 consul에 대한 metasploit rce 코드가 올라와서 해당 내용으로 글 작성해 봅니다. 독특한 이슈나 임팩트 있는 건은 아니지만, 그냥 관심있는 툴에 나온 부분이라 그냥..그냥그냥 정리해봅니다.

OWASP ZAP의 New interface! ZAP HUD 🥽

1 min read

예전에 ZAP쪽 트윗보고 트위터로 공유해두었던게 있었는데, 최근 @Dakkar Key의 멘션으로 급 생각나서 글로 정리해둡니다. 그땐 정말 많이 대충 봐서 확하게 뭔지 몰랐었는데, 찾아보니 생각보다 좋은 도구인 것 같네요.

JSShell - interactive multi-user web based javascript shell

~1 min read

git 보다가 재미있는 툴 있어 공유드립니다. JSSHELL이라 툴로 XSS Post Exploit 툴 정도로 보심 되고 요약하면 beef의 Command line 버전이라고 생각하시면 좋을 것 같습니다.

Needle - iOS Application and Device 해킹/보안 분석 프레임워크

5 min read

Needle은 Drozer로 유명한 MWR Lab에서 만든 iOS 분석용 프레임워크입니다. Drozer와 비슷하게 디바이스에 Agent를 내리고 앱과 디바이스에 대한 분석을 할 수 있습니다.

보통은 Frida + Burp(ZAProxy)의 조합으로 분석을 하는데, 보다보니 Needle이 Frida 사용에 있어 좀 편리한 부분이 있더군요.

Windcard(*) Attack on linux (와일드 카드를 이용한 공격)

2 min read

조금 철 지난 기법이지만 관심이 적어 모르고 있던거라.. 글로 작성해둡니다. wildcard는 굉장히 많은 영역에서 사용되는 문자이고 컴퓨팅, 프로그래밍에선 더더욱 많이 사용되는 문자들입니다.

WAF Bypass XSS Payload Only Hangul

~1 min read

어제 뒤적뒤적 웹 서핑하다가 가타카나로 된 공격코드를 보고 한글로도 한번 만들어봐야지 싶어 퇴근길에 폰으로 만들어봤습니다 😊

ZAP Scripting으로 Custom Header

~1 min read

ZAProxy에서 replacer를 이용해 Request/Response 내용 중 일부를 자동으로 변경할 수 있습니다. 물론 추가도 가능하구요.그치만 우리는 때때로 조금 더 디테일한 변경이 요구되기도 합니다. 이때는 script로 넣어두고 쓰면 편리하니 공유드립니다.

비루팅/비탈옥 단말에서 프리다 사용하기 (Frida Inject DL for no-jail, no-root)

2 min read

앱 취약점 분석 시 엄청나게 활용도 높은 프리다. 예전부터 약간 Jailbreak, rooting 단말에서만 동작한다는 편견이 있었는데요. 재미있는 트릭을 이용하면 비루팅/비탈옥 단말에서도 프리다 사용이 가능합니다. 프리다 공식 홈에도 있는 내용이니 참고하시길 바랍니다 :)

iOS App MinimumOSVersion 우회하기 (강제변경)

1 min read

최근에 iOS 앱 중 최소 설치버전 제한 떄문에 약간 삽질을 했었습니다. 결론부터 말씀드리면 해당 앱 기준으론 성공하지 못했습니다만, 가능성이 없는 방법은 아니기 때문에 블로그 글로 공유해봅니다.

Burp suite Daracula(dark) Theme Release!

~1 min read

오늘이 할로윈이라 그런가요. Burp 팀에서 좋은 소식을 주었습니다. (어제 밤에 글써놓고 뻗어서 자버렸네요….)

Review on recent xss tricks (몇가지 XSS 트릭들 살펴보기)

1 min read

XSS 테스트 벡터들 자주 찾아보곤(또는 공유받거나 눈에 걸리거나..) 하는데 최근에 포스팅 쓸만큼 특별한건 없었고 간단한 트릭정도 몇개 올라와서 정리해서 한번에 글 작성합니다.

iOS에서의 SSL Pinning Bypass(with frida)

2 min read

피닝 적용이 된 앱들이 좀 있다보니 모바일 앱 분석에선 언피닝이 거의 필수 코스가 되어가고 있습니다. 보통 Frida 코드(짜거나 codeshare에서 가져다 쓰거나)로 우회합니다.

LOKIDN! 재미있는 IDN HomoGraph Attack 벡터

1 min read

한 2주전쯤인가요? EDB에서 재미있는 문서 하나를 보았습니다. 서로 다르지만 비슷하게 생긴 문자들 이용한 공격 기법인 IDN Homograph attack으로 웹을 공격하는 재미있는 방법이라 정리해서 글로 공유해봅니다.

DynoRoot Exploit (DHCP Client Command Injection / CVE-2018-1111)

2 min read

전에 이 취약점이 나왔을 때 그냥 dhcp 관련 취약점이 나왔구나 헀었느데, 최근에 다른 취약점 보다보니 이 취약점을 기반으로 한 취약점이 몇몇 보여 글로 풀어봅니다. 오늘 이야기드릴 내용은 DynoRoot Exploit입니다.

JSFuck XSS

2 min read

혹시 이런 XSS 코드 많이들 사용하시나요? 저는 개인적으로 Js 코드 탈출 이후 특수문자~문자열 등 원하는 구문 삽입이 어려울 떄 종종 사용하는 방법입니다.

Burp Suite REST API(Burp 2.0 beta)

1 min read

최근에 Burp suite 2.0 Beta 버전이 공개되었습니다. 혹여나 큰 변화가 있을까 공식 블로그랑 주변 반응?(기껏해야 트위터..) 좀 살펴본 이후 burp pro 2.0 으로 업그레이드 하였죠.

Arachni optimizing for fast scanning (Arachni 스캔 속도 향상 시키기)

13 min read

Arachni를 가지고 재미있는 것들을 하고있는데, 요즘 참 스캔 속도에 대해 고민이 되네요. Arachni 가 벤치 마킹 기준으로 굉장히 좋은 성능을 가지며 오픈소스이지만 결정적으로 어마어마한 스캔 시간이 발목을 잡는 것 같습니다.

SpEL(Spring Expression Language) Injection & Spring boot RCE

2 min read

Spring boot으로 구성된 서비스들을 점검할 때 꼭 체크해야할 부분 중 하나가 SpEL RCE 입니다. 가끔식 참고삼아 데드풀이 작성한 글(Spring boot RCE) 보는데요, 오늘은 제 블로그에 좀 정리해둘까 합니다.

Defcon 2018 발표 자료 및 Briefings list

6 min read

최근 Blackhat 2018 USA / Defcon 행사가 진행됬었습니다. 자료도 슬슬 올라오고 어떤 내용의 발표들이 있었는지 Title만 정리해둡니다. (천천히 읽어봐야겠네요, 재미있는건 포스팅하도록 하겠습니다)

Firefox Hackbar Addon 단축키(Short cut)

~1 min read

낮에 Hackbar git을 우연히 들어가게 됬는데(사실 밝은색이라 눈아파서 어둡게 색상좀 바꿀라고..) 단축키가 있더라구요. (이럴수가… Hackbar가 firefox quantum 이후로 개발자 도구로 들어가서 걍 신경 안쓰고 살았느데, 단축키가 생겼네요)

Insomnia로 REST API를 쉽게 테스트하자 😎

1 min read

오늘 소개해드릴 툴은 REST API 테스팅 툴인 Insomnia 입니다. postman과 같이 API를 테스팅하기 위한 여러가지 기능들을 제공하고 있고, 개발자뿐만 아니라 보안쪽에서도 충분히 자주 사용할 수 있는 도구라서 간단하게 공유드릴까 합니다.

리눅스에서 OWASP ZAP과 BurpSuite의 색상 바꾸기

2 min read

아주 예전부터 Burp suite, ZAP의 색상을 바꿀 수 있으면 좋겠다는 생각을 했었습니다. 관련해서 양쪽 개발자분꼐 여쭤봤지만 동일하게 코드 수정을 매우 어렵다고 답변 들었습니다. (당연한 이야기…, 역시 자바란)

ZAP에서 Passive Script 만들기

1 min read

요즘 몇가지 만들어쓰고 있는데, 간단하게 틀이되는 코드와 대략적인 설명으로 글 작성합니다.

Subdomain Takeover 취약점에 대한 이야기

2 min read

오늘은 Subdomain Takeover 취약점에 대한 이야기를 할까 합니다. 어느정도 자동화가 가능하면서도 버그바운티에서도 결과가 좋은 공격 방법이라 알아두시면 두고두고 도움될거라고 생각합니다.

ZAP에 필요한 기능과 Burp suite 듀얼 체제로 느낀점

2 min read

최근에 ZAProxy 관련글을 쭉 작성하고 있습니다. Burp + ZAProxy 구성으로 진단하는 것에 대해 테스트해보고 적응하는 단계였는데, 한 1~2주 지났을까요? 전보다 확실히 익숙해진 것 같습니다. 이젠 단독으로 ZAProxy 써도 크게 불편하진 않을 것 같네요. 오늘은 관련 글의 마지막 부분으로 앞으로 적용해야할 것들에 대한 이야기를 하려합니다.

ZAP 단축키 사용 팁

1 min read

시간도 늦고 피곤해서 잘까하다가, 재빠르게 글 하나 쓰고 자려합니다.

ZAP Scripting으로 Code Generator 구현하기

2 min read

ZAProxy와 Burp를 혼용해 쓰면서 불편한 점들을 찾고, 고쳐가고 있습니다. 오늘은 그 중 Code genertor에 대한 이야기를 할까 합니다.

Burp suite 중독자가 바라본 OWASP ZAP(Zed Attack Proxy). 이제부터 듀얼이다!

3 min read

요즘 부쩍 툴에 대한 많은 깊은 고민이 생겼습니다. 어떤 툴을 쓰면 좋을지, 이참에 걍 하나 만들지… 한… 3년? 전쯤에도 같은 고민이 있었죠. 그때는 Burp suite에 올인하기로 마음을 잡았었습니다. 시간이 지난 요즘, 또다시 Burp suite에 대한 지겨움, 새로움을 갈구하는 마음에 여러 고민이 시작되었습니다.

Firefox XSS with Context menu(+css payload)

1 min read

주말 밤 트위터를 통해 재미난게 있나 구경하던 도중 익숙한 구문이 리트윗 되는 광경을 목격했습니다. 관련해서 링크 읽어보니 재미있는 상황이더군요. 내용을 이야기하자면 현재 동작하지 않던 오래된 XSS 테스팅 코드가 있었는데, 재미있는 버그 하나와 코드를 이용해서 XSS가 가능한 사례인데요. 오늘은 이 내용 관련해서 글을 작성해봅니다.

BurpKit - Awesome Burp suite Extender(Burp에서 개발자 도구를 사용하자!)

2 min read

올해 초 쯤인가요? Payload 관련해서 공유 받은 내용이 있었는데, 알고보니.. 쓸만한 툴을 팍팍 찍어내고 계신 CrowdShield의 1N3의 Git이였습니다. 이중에서 하위 플러그인 디렉토리를 통해 Burp suite 확장기능을 추가로 배포하고 있는데요. 오늘은 그 중 하나인 Burp Kit에 대한 내용으로 글 작성해봅니다.

Android Meterpreter shell 에서의 실행 권한 상승 삽질 이야기

2 min read

저는 대체로 테스트폰에 작업할 때 meterpreter shell을 연결해놓고 사용합니다. 뭐랄까 ssh는 굳이 열어두고 싶진 않고 adb는 케이블 건드려서 끊길때 마다 불편해서 그냥 exploit app 하나 내려놓고 필요할때마다 실행하죠.

Android 4.4(KitKat)에서 NetHunter 설치하기

1 min read

간만에 테스트폰 한대에 넷헌터나 깔아서 놀아볼까 하고 설치하려고 보니.. 버전적인 문제가 생겼었습니다. 바로 넷헌터가 공식적으로 롤리팝 이상부터 지원을하는데.. 제 대다수 테스트 기기들이 그 아래 버전이 많아 문제가 될 가능성이 보였습니다.

[HACKING] Memcached reflection DOS attack 분석

6 min read

요즘 memcached 서버 DOS 취약점으로 잠깐 시끌벅적했습니다. 어제 새벽 pastebin에 C기반 PoC 코드랑 shodan에서 조회한 서버 내역이 올라왔는데요. 오늘은 그 내용 가지고 글 좀 써볼까 합니다.

Shodan API와 Metasploit을 이용한 Exploiting script - AutoSploit

1 min read

원래 LanGhost 내용으로 글 써볼까 헀다가, 급 주제를 바꾸어 툴 하나에 대해 이야기하도록 하죠. 오늘은 이번주에 나름 핫했던 AutoSploit입니다.

What is AutoSploit?

AutoSploit은 원격 호스트에 대한 자동 서칭, Exploit 툴, 스크립트 정도로 생각하시면 좋을 것 같습니다. 파이썬 기반의 코드이며 Shodan을 이용해서 임의의 대상을 선정하고, Metasploit 모듈로 Exploiting 합니다. 자동을 대상을 선정하고, 공격하고, 권한을 획득할 수 있다는 점에서 조금 리스크한 툴로 보입니다만, 이미 350명이 넘는 사람이 fork 중이네요.

[WEB HACKING] SQLite SQL Injection and Payload

3 min read

최근 예전에 SSRF 올렸던 내용의 확장격인 나름 개인의 연구과제와 Blind XSS 테스팅 툴 만드는 것 때문에 짧은 글로 가끔 포스팅하는 것 같습니다. (시간이 없다는 핑계, 사실 놀거 다 놀고 있는 느낌..)

Blind XSS(Cross-Site Scripting)와 보안테스팅

1 min read

오늘은 Blind XSS에 대한 이야기를 잠깐 할까합니다. 보편적인 XSS와 비슷하고, 테스트 방법 또한 비슷하지만, 언제 어디서 우리에게 어떤 결과를 줄지 예측할 수 없는 그런 친구이지요.

OWASP Top 10 2017 RC2 Review

1 min read

지난달 OWASP Top 10 2017년도 버전 RC2가 나왔습니다. RC2 버전은 기존 RC1에서 개선되어 발표되는 버전이고 몇가지 만족스러운 변화가 있었습니다. 오늘은 OWASP Top 10 2017 RC2의 변화된 사항과 개인적인 생각을 전달드리려 합니다.

가상 Pentest 환경 구성을 위한 metasploitable2 설치

4 min read

가상 환경에서의 Pentest 어떻게 생각하시나요? 분명 실제 상황과 느낌도 다르고 불안한감도 없어 장난감 같은 느낌이 들겁니다. 사람이 미리 취약하게 만들어둔 시스템을 공격하는게 무슨 의미가 있는가 라는 질문도 받습니다.

Bypass DOM XSS Filter/Mitigation via Script Gadgets

3 min read

최근 Blackhat2017 USA에서 “Breaking XSS mitigations via Script Gadgets” 라는 제목으로 XSS 관련 발표가 있었습니다. XSS 우회패턴 만들때 도움될 수 있는 부분이니 정리해서 포스팅 작성합니다.

XCode Simulator에 App(.ipa) 파일 설치하기

~1 min read

취약점 테스트 기기로 쓰는 iOS 디바이스에 문제가 있어 Simulator를 알아보던 중 간단한 팁이 있어 작성합니다. 일반적으로 Simulator에 Xcode로 컴파일한 앱이 아니면 설치가 불가능합니다. 다만 약간의 트릭을 쓰면 쉽게 가능하지만요. 오늘은 app 파일인 .ipa(app)으로 Xcode Simulator에 설치해 봅시다.

[LINUX] How to install xfce on blackarch linux

~1 min read

개인적으로 gnome과 xfce를 좋아합니다. 그중에서도 xfce를 최고로 생각하는데, 그 이유는 클래식의 익숙한 느낌과 빠른 속도 때문이죠.

[LINUX] BlackArch Linux install tip!

1 min read

최근에 OS 배포판 변경을 시도했다가.. 다시 Debian으로 돌아왔는데요 (이제는 5일씩 밤을샐 수 없네요.. / 인간은 실수를 반복하죠)

Metasploit ipknock를 이용한 hidden meterpreter shell

6 min read

metasploit에서 payload에 대해 찾아보던 중 ipknock에 대한 내용을 보게되었습니다. 찾아보니 오래전부터 있던 기능이였는데, 잘 활용하면 재미있는 놀거리가 되겠더군요.

[EXPLOIT] Struts2 REST Plugin XStream RCE 취약점 분석(feat msf) CVE-2017-9805 / S2-052

2 min read

최근 Sturts2 RCE 취약점이 또 나와 이슈가 되었습니다. 매번 RCE 취약점으로 고생하는거보면 안쓰럽기까지 하네요. 오늘은 따끈따끈한 CVE-2017-9805(REST Plugin XStream RCE) 취약점에 대해 이야기드릴까 합니다. 기존 분석에 비해 내용이 덜 자세하긴 하지만.. 조금이나마 이해에 도움이 되길 바라네요.

Metasploit 의 rhosts에서 Column/Tagging 커스터마이징 하기

3 min read

Metasploit에서 hosts 명령은 아주 중요한 명령입니다. 타겟에 대한 관리부터, exploit 시 좀 더 편하게 타겟을 RHOSTS에 넣을 수 있어 많이들 사용하시고, 앞으로도 쭉 사용할 수 밖에 없는 기능이죠.

[WEB HACKING] Retire.js를 이용해 JS Library 취약점 찾기

1 min read

오늘은 웹 해킹에 유용한 Browser Extension이자 분석툴의 plugin, 독자적으로 동작하는 Node.js app인 Retire.js에 대한 이야기를 할까 합니다. 써온지는 조금 됬으나 어느순간부터 Extension과 툴에 대한 소개를 좀 덜하게 되다보니 좋은 툴인데 이제서야 공유드리게 되네요.

Metasploit API와 msfrpcd, 그리고 NodeJS

5 min read

요즘 metasploit의 rpc에 대해 굉장히 관심이 많습니다. 대표적으론 msgrpc plugin 부터 msfrpcd 데몬까지 metasploit에서 rpc를 이용할 수 있는 방법들을 많이 찾아보고 있지요.

Metasploit-Aggregator를 이용한 Meterpreter session 관리하기

4 min read

Metasploit과 Meterpreter는 굉장히 좋은 툴지만 간간히 불편한점도 존재합니다. 대표적으론 여러 사용자가 세션에 대해 공유할 수 없다는 점과 공격자의 Metasploit에 모든 세션을 담기에는 너무 많아지면 불편해지겠죠. 오늘은 이를 해결할 수 있는 Aggregator에 대한 이야기를 할까 합니다.

EXIF를 이용하여 이미지 파일 내 Payload 삽입하기

6 min read

이미지를 처리하는 서비스들을 보면 많은 서비스들이 이미지의 metadata를 사용합니다. 이를 파싱해서 활용하기 때문에 우리는 이를 통해 XSS나 XXE 등 여러 웹 해킹 기법에 사용할 수 있습니다. 가장 쉬운 방법으론 각 OS의 파일 뷰어에서 파일 속성을 열고 직접 편집하여 사용할 수 있지만 이는 약간 귀찮은 작업이고 툴이나 자동화 시 굉장히 걸리적거립니다. 그리고 러한 작업을 도와주는 exif(exiftool)란 도구를 사용하면 좀 더 쉽게 데이터를 추가하고 수정할 수 있습니다.

Automatic Exploit&Vulnerability Attack Using db_autopwn.rb

~1 min read

예전에 Metasploit에는 db_autopwn이라는 plugin이 있었습니다. 다수의 시스템을 테스트하고 공격을 수행해야하는 사람 입장에서 아주 유용할 수 있는 plugin이지만 문제가 있어 공식 버전에서 제외된 plugin이죠. 전설처럼 내려오는 db_autopwn 코드를 통해 따로 plugin으로 넣어준다면 지금도 충분히 사용 가능합니다.

Data Leak Scenario on Meterpreter using ADS

3 min read

Meterpreter를 가지고 놀던 중 재미있는 사실을 하나 발견했습니다. 뭐 크게 놀라운건 아니지만 meterpreter 에서도 아래 명령이 먹힐줄은 몰랐네요.

Privilege Escalation on Meterpreter

4 min read

Meterpreter shell에서 권한상승은 어렵지 않습니다. getsystem 명령 하나면 충분하죠. 그럼 약간 궁금증이 생기게 됩니다.

[WEB HACKING] Web hacking and vulnerability analysis with firefox!

4 min read

대부분의 웹 해킹/취약점 분석은 Burp suite, Fiddler와 같은 웹 프록시, 디버거와 웹 브라우저, 그리고 확장 기능들을 이용해 이루어집니다. 저 또한 Burp+Firefox+Addon 조합으로 분석을 진행하지요.

[MAD-METASPLOIT] 0x30 - Meterpreter?

1 min read

What is Meterpreter shell?

Metasploit에서 여러 기능을 제공하는 쉘이자 Anti forensic을 위한 shell이라고 볼 수 있습니다. 개인적으로 굉장히 좋아하는 쉘이며 Ruby script(IRB)의 연동으로 현재 주 언어를 Ruby로 쓰고있는 저에게는 최고의 쉘이 아닐까 싶습니다.

Meterpreter를 이용한 Windows7 UAC 우회하기

3 min read

Windows system을 침투테스트하다 보면 UAC라는 게정 컨트롤을 만나게 됩니다. 아래에서도 설명드리겠지만 이는 Windows 의 보안 정책 중 하나이며 우리는 이것을 우회해야 더 깊은 내용으로 접근하고 실행할 수 있습니다. 오늘은 Metasploit을 통해 UAC를 우회하는 방법에 대해 이야기할까 합니다.

[MAD-METASPLOIT] 0x40 - Anti Forensic

2 min read

Remove event log meterpreter > clearev [] Wiping 766 records from Application… [] Wiping 1375 records from System… [*] Wiping 346 records from Security…

[MAD-METASPLOIT] 0x34 - Persistence Backdoor

1 min read

Persistence backdoor

Meterpreter는 Persistence 를 이용하여 시스템에 백도어를 남겨 지속적으로 접근할 수 있는 통로를 만들 수 있습니다.

[MAD-METASPLOIT] 0x20 - Remote Exploit

3 min read

HAHWUL auxiliary(vnc_login) > db_nmap -PN 192.168.56.101 [] Nmap: Starting Nmap 7.01 ( https://nmap.org ) at 2017-08-07 15:17 KST [] Nmap: Nmap scan report for 192.168.56.101 [] Nmap: Host is up (0.00072s latency). [] Nmap: Not shown: 983 closed ports [] Nmap: PORT STATE SERVICE [] Nmap: 80/tcp open http [] Nmap: 135/tcp open msrpc [] Nmap: 139/tcp open netbios-ssn [] Nmap: 443/tcp open https [] Nmap: 445/tcp open microsoft-ds [] Nmap: 554/tcp open rtsp [] Nmap: 2869/tcp open icslap [] Nmap: 5357/tcp open wsdapi [] Nmap: 5500/tcp open hotline [] Nmap: 5800/tcp open vnc-http [] Nmap: 5900/tcp open vnc ..snip..

[MAD-METASPLOIT] 0x10 - Port scanning

3 min read

nmap scan

Metasploit Database 사용 하도록 설정하였다면 Msf 내부에서 DB와 연결되는 nmap을 사용할 수 있습니다. nmap에 대한 결과가 Metasploit DB로 들어가 연동되기 때문에 후에 스캔 데이터를 가공하는데 있어 굉장히 편리합니다.

[MAD-METASPLOIT] 0x02 - Database setting and workspace

~1 min read

DB 연동을 하게되면 취약점 정보를 DB에 인덱싱하여 조금 더 빠른 검색을 사용할 수 있고 DB를 통해 taget에 대해서 효율적으로 관리할 수 있어 Metasploit을 사용하는데 있어 굉장히 중요한 요소입니다.

[METASPLOIT] DB 연동 이후 발생하는 Module database cache not built yet(slow search) 해결하기

1 min read

Metaploit을 사용하다 보면 Module DB cache로 인해 검색이 느린 경우가 있습니다. 대체로 Metasploit에서 DB 연결을 안할때 발생할 수 있지만 DB 연결이 되어있어도 발생할 수 있는 경우가 있습니다. DB를 연동하지 않은 분들은 아래 링크 참고하셔 연동하시면 말끔하게 사라집니다.(연동하면 장점이 훨씬 많아요)

AngularJS Sandbox Escape XSS

3 min read

AngularJS는 웹 상에서 많이 사용되는 개발 프레임워크입니다. 이런 프레임워크에는 당연히 보안 로직, 정책이 들어가게되죠. 그 중에 대표적인 것은 바로 SandBox 입니다. Sandbox 로 인해 우리는 성공한 공격이 영향력이 없어지는 진귀한 광경을 목격하게되죠.

[METASPLOIT] Writing Custom Plugin for metasploit

3 min read

최근에 a2sv를 metasploit plugin으로 지원할 생각을 하고있습니다. 모듈 제작이 아닌 plugin 제작으론 경험이 거의 없기에.. 하나하나 찾아보면서 진행하기로 했죠.

Metasploit resource script와 ruby code로 커스터마이징 하기

4 min read

예전부터 저는 Metasploit을 Custom 해서 사용하고 있었습니다. 그리고 올 초 msf의 업데이트로 파일 시스템의 구조가 바뀌면서 Custom 코드가 좀 꼬이게 되었습니다. 그래서 다시 Custom 과정을 거치던 중 재미있는 아이디어가 생각나서 포스팅 작성해봅니다.

[HACKING] Symbolic Execution(symbolic evaluation)을 이용한 취약점 분석

3 min read

이번 포스팅은 Symbolic Execution 정리차원으로 글 작성해봅니다. Symbolic Execution은 포통 취약점 분석에 많이 사용되는 방법 중 하나이머, 이 기법으로 굉장히 많은 노가다가 단축되어 간단한 분석에서 엄청난 효율을 자랑합니다.

[WEB HACKING] SWF(Flash) Vulnerability Analysis Techniques

5 min read

오늘은 SWF내 취약점 분석에 대한 이야기를 할까합니다. SWF가 많이 적용된 환경은 가끔식 보는지라.. 오랜만에 분석하려하면 까먹고 기억 안나는 것들이 있습니다. 두고두고 볼 겸 포스팅으로 작성합니다.

[METASPLOIT] msfconsole 내 Prompt 설정하기

~1 min read

msf 사용 중 간단한 편의 기능에 대한 이야기를 할까합니다. 바로 Prompt 부분에 대해 설정하는 방법인데요. 초기 저는 이 방법이 있을거란 생각도 안하고 코드에서 직접 바꿔서 썼었던 기억이 나네요. (물론 그것도 나름의 장점이!)

[DEBIAN] Thunder Bird에서 Anigmail, GnuPG(gpg)를 통한 이메일 암호화

3 min read

오늘은 암호화된 메일 통신을 위해 GPG를 이용한 키생성과 Thunder Bird에 연동하는 과정을 이야기할까 합니다. 일반적으로 쓰는 메일 서비스들이 암호화되어 안전하게 전송된다고는 하지만 우리는 신뢰할 수 없기 때문에 종단 간 암호화로 더 튼튼한 이메일을 사용하죠.

Parameter Padding for Attack a JSON CSRF

1 min read

좀 오래된 우회기법(?)이긴 하나 한번 정리해두면 좋을 것 같아 포스팅합니다. 오늘은 CSRF 그중에서도 JSON 형태의 요청을 처리하는데 사용할 수 있는 방법이죠.

Form action + data:를 이용한 XSS Filtering 우회 기법

~1 min read

XSS 테스트 시 재미난걸 하나 찾은겸 블로그에 정리할까 합니다. 먼저 테스트하던 구간은 여러가지 규칙이 있었습니다. 문자열 기번의 필터링으로 사용할 수 있는 태그가 한정되어있고, 이벤트 핸들러 또한 거의 전부 필터링되었죠. 그리고.. 결정적으로 base, java , script 등 문자열 필터링으로 우회 구문 작성하는데 좀 귀찮았습니다.

Apache Struts2 RCE Vulnerability(CVE-2017-5638/S2-045)

1 min read

올해도 어김없이 Apache Struts2 관련 취약점이 공개되었습니다. 요즘 DCCP Double free 취약점을 천천히 보고있는 상황인데 급히 Struts 정리해서 포스팅하게 되네요. 현재 CVE-2017-5638, S2-045로 올라와 있습니다.

Bypass XSS Blank filtering with Forward Slash

1 min read

XSS 테스팅 시 가끔씩 발목을 잡는 친구가 있습니다. 바로 Blank 필터링인데요. 태그 사용이 제한된 상황에선 굉장히 짜증나는 존재죠. (다된 것 같은데..output이 안나오는 상황)

[METASPLOIT] Hardware pentest using metasploit - Hardware-Bridge

3 min read

최근 Rapid7사에서 재미있는 내용을 발표했었습니다. 바로 Metasploit Framework의 Hardware-Bridge 기능입니다. 이로써 Metasploit은 소프트웨어와 하드웨어 모두 공격이 가능한 프레임워크가 되었네요.

[WEB HACKING] PHP Comparison Operators Vulnerability for Password Cracking

2 min read

개인적으로 프로그래밍의 재미있는 요소는 연산자가 아닐까 싶습니다. 작은 연산자들이 모여 큰 흐름을 만들고, 우리같은 해커는 이 흐름을 틀어 예상치도 못한 행위를 이끌어내니 굉장히 재미있는 부분이죠.

[EXPLOIT] IE VBScript Engine Memory Corruption 분석(Analysis a CVE-2016-0189)

8 min read

최근 메일로 포스팅 요청이 있어 CVE-2016-0189 분석글을 작성하려합니다. 메일 받은지는 좀 됬는데.. 여전히 아직 저의 바쁨은 끝이 안나더군요. 틈틈히 작성하고, 퍼즐 조각 맞추기처럼 작성하여 포스팅을 올리게 되었습니다.

postMessage를 이용한 XSS와 Info Leak

4 min read

지난주 Exploit-db에서 뒤적뒤적 하던 중 PostMessage 재미있는 관련 문서를 보게되었습니다. 바로 postmessage에서 발생하는 취약점을 찾는 방법입니다.

BurpSuite의 단축키(Hotkey) 소개 및 변경하기

1 min read

개인적으로 웹 해킹 시 주력으로 사용하는 툴은 Burpsuite 입니다. 아 물론 최근 ZAP(OWASP Zed Attack Proxy)를 사용해봤는데 굉장히 좋더군요. 그래도 손에 익은 단축키와 저에게 맞는 UI로 저는 Burp의 손을 들어주고 싶네요.

[CODING] WebSocket - Overview , Protocol/API and Security

1 min read

WebSocket이란?

WebSocket은 웹 페이지에서 실시간으로 동작하는 웹 서비스를 만들어 줄 수 있는 표준 기술입니다. 일반적으로 웹 프로토콜인 HTTP는 Request와 Response 기반으로 새로 요청이 발생하면 페이지를 다시 그려야하는 구조입니다. 덕분에 쿠키라는 개념도 사용되게 되었지요. (인증 정보를 유지하기 위해)

[HACKING] BlackArch Linux Install, Review (Arch linux for Pentest)

2 min read

이번에 가상머신 정리좀 할 겸 최근에 이야기 나왔던 BlackArch를 설치해봤습니다. 개인적으로 Arch Linux를 써본적이 없기 때문에(딱 한번 설치만 해봤던거 같네요) 기대감을 지닌 채 구성을 하였습니다.

Paranoid Mode! SSL Certified Meterpreter shell

3 min read

지속적인 모의해킹은 인프라, 서비스의 보안성을 향상 시키는데 큰 도움이 됩니다. 다만 뒷처리가 깔끔하지 않다면 더 취약해질 수도 있다는 문제점을 가지고 있죠.

[EXPLOIT] GNU Wget 1.18 Arbitrary File Upload/Remote Code Execution 분석(Analysis)

4 min read

오랜만에 Exploit 코드 분석을 해볼까합니다. (한참된거 같네요) 최근 wget, 즉 gnu wget에서 Arbitrary File Upload와 Remote Code Execution 취약점이 발견되었습니다. 딱봐도 파급력이 크기 때문에 당연 CVE도 붙었고 CVSS Risk level 도 높을 것으로 보이네요. 그럼 시작해볼까요?

PUT/DELETE CSRF(Cross-site Request Forgrey) Attack

2 min read

오늘은 웹 해킹 기법 중 핫한 CSRF에 대한 이야기를 좀 할까합니다. XSS와 함께 정말 자주 잡게되는 취약점이고 사용 방향에 따라 영향력도 높을 수도 있는 멋진 친구이지요. 오늘은 아주 희소하지만 PUT/DELETE 등 GET/POST가 아닌 CSRF에 대한 이야기를 할까 합니다.

HIDDEN:XSS - input type=hidden 에서의 XSS

3 min read

웹 취약점 진단에서 가장 만만하면서 가장 어려울때도 있는 XSS에 대한 이야기를 할까합니다. 그 중에서도 오늘은 hidden XSS. 즉 hidden 속성을 가진 태그에 대한 xss입니다.

[WEB HACKING] Making XSS Keylogger(XSS Keylogger 만들기)

2 min read

오늘은 공격을 통한 영향력 측면에서 바로 사용자의 키 입력을 가로채는 Keylogger를 간단하게 만들어볼까합니다. 물론 악용하시면 안됩니다. 연구적인 측면에서 해보시길 바랍니다.

Anti-XSS Filter Evasion of XSS

6 min read

웹 해킹 시 가장 많이 잡는 취약점 중 하나가 XSS와 URL Redirection입니다. 항상 하다보면 꼭! 스크립트로 들어갈 수 있으나 함수 및 특정 특수문자 필터링에 막히는 경우가 종종 있죠. 그래도 여러분들께 재미있는 우회 기법 몇개 공유해드리면 좋을 것 같아서 작성해봅니다.

[WEB HACKING] Reflected File Download(RFD) Attack

3 min read

요즘 정신없이 보내다보니 간만에 글을 쓰게 되네요. 오늘은 BlackHat 2014에서 Hot했던 RFD에 대한 이야기를 하려합니다. (벌써 2년이나 지났네요 ㅎㅎ..)

[WEB HACKING] DotDotPwn - The Path Traversal Fuzzer(DDP를 이용한 Path Traversal)

2 min read

Path Traversal , Directory Traversal을 좀 더 쉽게 테스팅할 수 있는 Traversal 전용 Fuzzer - DotDotPwn에 대한 내용으로 진행할까 합니다. 이 툴은 현재 Kali Project에도 속해있을 정도로 유명하고 잘 사용되는 툴 입니다. 잘 익혀두면 정말 필요할 때 알맞게 사용하실 수 있죠.

[WEB HACKING] Apache Struts2 DMI REC(Remote Command Executeion) Vulnerability(CVE-2016-3081)

2 min read

지난 CVE-2016-0785 취약점에 이어 CVE-2016-3081 Struts2 취약점에 대해 정리할까합니다. 일단 Struts2 취약점은 예전부터 아주 치명적인 취약점으로 알려졌었고, 최근에 또 줄줄이 나타나고 있습니다. 올 초부터 발생한 Sturts2 취약점들은 약간 비슷한 형태의 구성을 가지고 있습니다.

Apache Struts2 REC Vulnerability (CVE-2016-0785)

2 min read

최근 Apache Struts2에 Remote Command Execution 취약점이 하나 올라왔습니다. 이전에도 굉장히 이슈가 많았던 Struts 취약점은 Struts2를 사용하는 Apache에서 취약할 수 있으며 원격 명령이 실행되어 서버 권한을 탈취할 수 있기 때문에 굉장히 위험하죠.

[HACKING] Phase of Ethical Hacking Phase4 - Maintaining Access

2 min read

윤리해킹(Ethical Hacking)의 5가지 단계 중 네번째 Maintaining Access입니다. Maintaining Access는 Gaining Access를 통해 시스템에 접근 후 접근의 유지를 위해 하는 절차입니다. 대표적으로 Backdoor를 심고 Rootkit을 설치하는 과정이죠.

[HACKING] Phase of Ethical Hacking Phase3 - Gaining Access

3 min read

윤리해킹(Ethical Hacking)의 5가지 단계 중 세번째 Gaining Access입니다. Gaining Access 는 요약하자면 Recon, Scan 등을 통해 얻어진 정보를 가지고 실제 시스템에 접근을 얻어내는 과정입니다. MSF나 만든 공격코드를 통해 Exploit 하는 과정이라고 볼 수 있지요.

[HACKING] Phase of Ethical Hacking Phase2 - Scanning/Enumeration

1 min read

윤리해킹(Ethical Hacking)의 5가지 단계 중 두번째 Scanning & Enumeration입니다. 이 단계는 타겟에 대해 Scanning 하는 단계입니다. 타겟 시스템에 대해 Port Scan 등을 진행하고 직접적인 공격 수행에 앞서 점검하게 되는 순서입니다. 이번 포스팅에서는 Scanning과 Enumeration 에 대한 이야기를 할까 합니다.

[HACKING] Phase of Ethical Hacking/Pentest(모의/윤리해킹의 단계)

2 min read

모의해킹/윤리적인 해킹을 위해 제시되는 단계들이 여려가지가 있습니다. 이 가운데 대표적으로 사용되는 것을 조금 정리해볼까 합니다. 물론 실무에서는 다른 느낌으로 접근하지만요.. (물론 각각 다 차이가 있을 수 있음)

[HACKING] OpenSSL Client 에서 SSLv2 사용하기(Check DROWN Attack)

1 min read

OpenSSL, Python 내 ssl 패키지도 어느시점부터 SSLv2 사용에 대해 지원을 중단하고 사용하지 못하도록 패치되었습니다. 올 초에 이슈가 되었던 DROWN Attack에 대해서 점검하기 위해서는 SSLv2 를 사용하여 서버에 접근해야하지만, 기존에 사용하던 OpenSSL은 -ssl2 옵션을 사용하지 못합니다. 그래서 간단한 방법으로 패치하여 사용하는 법에 대해 공유할까 합니다.

[HACKING] SSLv2 DROWN Attack(CVE-2016-0800) 취약점 분석 / 대응방안

3 min read

올 초에 발견되었던 DROWN Attack에 대해 이야기해볼까 합니다. 사실 발견 당시 이 취약점에 대해 굉장히 흥미가 생겼지만, 바쁜 일정과 적은 자료로 관심을 접게되었지요. 최근에 a2sv에 해당 취약점을 점검할 수 있는 모듈을 넣는게 좋다고 생각되어서 다시 열어보게 되었습니다.

NMAP Part2 - NSE(Nmap Script Engine)을 이용한 취약점 스캐닝

2 min read

Nmap script 인 NSE는 nmap을 통해 네트워크 스캔을 진행하거나, 취약점 진단을 수행할 때 유용하게 쓰일 수 있는 스크립트입니다. Lua로 작성되어 있으며 nmap을 통해 포트스캔, 네트워크 접근 이외에도 더 넓은 범위의 테스트를 지원합니다. 오늘은 NSE에 대한 이야기를 하려고 합니다.

Arachni - Web application security scanner framework

1 min read

많은 WVS(Web Vulnerability Scanner) 중 오픈소스 프레임워크인 Arachni에 대한 이야기를 할까합니다. 간단하게 테스트 하였고, 무난하게 사용할 수 있을 것 같아 정리합니다.

MSF의 local_exploit_suggester 모듈을 이용한 Local Exploit 찾기

2 min read

Metasploit을 통해 대상 시스템에 침투했을 경우 우리는 권한 상승을 위해 Local 취약점을 찾기 위해 노력할 것입니다. 물론 취약한 어플리케이션이 눈에 잘 띄지는 않지만요. Meterpreter Shell에서 사용가능한 모듈 중 이러한 과정을 자동화해준 모듈이 있습니다. 바로 local_exploit_suggester 인데요, 오늘은 이 모듈에 대해 이야기 할까 합니다.

[HACKING] steghide를 이용한 Steganography(Embed/Extract Steganography with steghide)

6 min read

Steganography와 steghide

Steganography Steganography (US Listeni/ˌstɛ.ɡəˈnɔː.ɡrə.fi/, UK /ˌstɛɡ.əˈnɒɡ.rə.fi/) is the practice of concealing a file, message, image, or video within another file, message, image, or video. The word steganography combines the Greek words steganos (στεγανός), meaning “covered, concealed, or protected”, and graphein (γράφειν) meaning “writing”.

SQLNinja를 이용한 SQL Injection 테스팅

2 min read

SQL NINJA란?

SqlMap과 함께 SQL Injection Testing 도구로 유명한 툴입니다. perl 기반으로 제작되었으며, Kali Default Tool에도 포함될 만큼 좋은 성능을 자랑하지요.

[SYSTEM HACKING] RPC Port Map Dump를 이용한 서비스 Port 확인

1 min read

System에 오픈되어 있는 Port 를 확인하는 방법에는 여러가지가 있습니다. 대표적으로 port 에 대해 직접 요청하여 확인하는 방법(Syn Scan, XMAS 등등)이 있지요. nmap을 통해 서비스에 있는 포트들에 대해 확인하게 되는데 이 중 rpc 관련 포트가 있다면 좀 더 세심하게 스캔이 가능합니다.

Java Applet을 이용한 공격 방법들

2 min read

웹 취약점에 대한 분석 시 주요 태그로 알려진 것들은 대다수 필터링 되어 있지만 간혹 빠지는 태그들이 있습니다. 그 중 오늘은 applet 태그에 대한 이야기를 하려합니다.

TOCTOU(Time-of-check Time-of-use) Race Condition

1 min read

간만에 내용 정리할겸 Race Condition Attack에 대해 작성해볼까 합니다. 일단 Race Condition 기법은 이름 그대로 “경쟁조건” 을 의미하는 공격이고 취약한 프로그램이 사용하는 부분을 동일하게 점유하여 경쟁하고 반복적인 요청 중 공격프로그램이 이길 시 공격자가 원하는 흐름으로 프로그램의 로직을 바꿀수가 있습니다.

64bit Linux Execve Shell Code 만들기

4 min read

오늘은 64비트 쉘코드에 대한 이야기를 할까 합니다. 예전에 이쪽 분야 관심을 가졌을 초반 쯤에 32bit에 대한 쉘코드를 만들고 사용했었지만 지금은 일 특성상 딱히 쉘코드를 사용할 일이 굉장히 적어졌기에 간만에 보는 느낌입니다.

JS,CSS를 이용해 팝업 레이어 만들기

1 min read

블로그 디자인 수정 중 검색 부분에 재미있는 생각이 나서 약간 작업을 하였습니다. 기존에 쓰던 검색창은 블로그에서 바로 보이고 입력 후 검색하는 방법으로 구성하였는데, 클릭하여 따로 팝업을 띄운 후 거기서 검색하는 방법이 더 좋을 것 같다는 생각에 수정하였습니다.

HSTS(Http Strict Transport Security)와 보안/침투 테스트

2 min read

웹 해킹을 진행 중 SSL이 결려있는 https 에 대한 침투테스트를 진행할 때가 있습니다. 대부분의 site 는 SSL(https)만 적용되어 Proxy를 통해 쉽게 테스트가 가능하지만 개인정보나 중요정보를 다루는 서버는 HSTS 기술이 적용되어 있습니다.

[SYSTEM HACKING] Peach Fuzzer를 통해 Application 분석 1 - Install Peach Fuzzer

3 min read

취약점을 찾기 위해서 Fuzzing 이라는 반복적이고 재미없는 작업을 해야하는데, 이를 도와는 Fuzzer 들로 인해 좀 더 쉽게 취약 포인트를 찾아나갈 수 있습니다. 여러 Fuzzer 중 이번엔는 약간 큰 Peach Fuzzer(Fuzzing Framework)에 대한 이야기를 할까 합니다.

[METASPLOIT] Metasploit Custom Scanner 만들기(Make Simple Scan Module)

1 min read

offensive-security 에서 뭐 볼게 있다 뒤적뒤적하던 중 Metasploit Unleashed 에서 간단한 Scan Moudle 코드를 보았습니다. 물론 msf 자체가 ruby로 구성되어 있어 ruby를 쓰시는 분들은 쉽게 제작할 수 있지만, 일단 샘플코드가 있다면 다른 코드로 확장하기 굉장히 유용하기 때문에 따로 포스팅할까 합니다.

[METASPLOIT] Veil Framework(Payload Generator)를 이용한 Antivirus 우회하기

1 min read

Payload Generator 를 찾던 중 재미있는 툴을 발견하였습니다. 바로 Veil이라는 툴인데요, MSF에서 사용하는 Meterpreter Shell에 대해 Antivirus를 우회하기 위해 인코딩할 수 있는 툴입니다. 로고도 양과 늑대의 그림자이네요. (뭔가 양의 탈을 쓴 늑대랄까요)

[Exploit] SSLv3 POODLE Attack 확인 및 대응방안(Check and Modify)

3 min read

이전에 SSL3 Version 사용 시 보안적인 이슈가 있었던 POODLE Attack에 관한 이야기입니다. 나온지도 좀 되었고, 이미 브라우저 개발사 및 서버 측에서 SSLv3 를 사용하지 않는 식으로 하여서 영향력은 많이 떨어졌지만 그래도 간단하게 정리해놓는게 좋을 것 같아 작성합니다.

[EXPLOIT] StageFright Exploit Code 분석(StageFrigt Exploit Analysis)

9 min read

StageFright Vulnerability

최근 안드로이드쪽에서 핫 이슈였던 StageFright 취약점에 대해 기억하시나요? 멀티미디어를 로드하는 스테이지프라이트 구간에 취약점으로 인해 미디어를 전송하는 MMS로 사용자의 핸드폰을 감염시킬 수 있는 취약점이였습니다. MMS 이외에도 미디어를 로드하는 구간에서 다수 발생할 수 있는 취약점이였었죠.. 나름 크게 이슈가 있던 취약점이라 따로 포스팅도 했었습니다. 보시면 대충 어떤 취약점이구나.. 라고 알 수 있습니다.

/proc/self/maps 파일을 이용하여 실행중인 시스템 메모리 주소 확인하기

1 min read

모바일 악성코드 분석 중 /proc/ 하단 데이터를 건드리는 코드가 있어 추가로 내용 더 써서 작성하였습니다. 참고로 /proc 디렉토리는 리눅스에서 사용되는 디렉토리이고 시스템의 프로세스 정보를 담고 있습니다. 간단하게 구조를 살펴보자면 아래와 같습니다.

Trinity를 활용한 System call Fuzzing

2 min read

취약점을 찾기 위해 하는 작업 중 큰 부분을 차지하는것이 바로 Fuzzing 입니다. Fuzzing 을 돕는 프로그램을 Fuzzer라고 부르는데, Fuzzer 중 Linux 시스템에서 Syscall에 대한 Fuzzing 작업을 수행할 수 있는 “Trinity” 라는 툴에 대한 이야기를 할까 합니다.

[SYSTEM HACKING] 소프트웨어 버그를 이용한 시스템 취약점/해킹(System vulnerability&hacking use software bug)

2 min read

오늘 테스트 프로그램으로 사용할 간단한 코드입니다. 사용자로부터 입력된 파일명을 tail 명령으로 조회하는 프로그램입니다. 대체로 system 함수 사용 시 sprintf로 명령행이 될 구간을 미리 작성하고 system 함수에 넣는 경우가 있는데, 사용자의 입력값에 대한 필터링 or 검증이 부족할 시 여러가지 공격방법에 취약할 수 있습니다.

[HACKING] katoolin 을 이용한 Kali Linux Hacking tool 간편 설치(Easy Install Kali Linux Hacking Tool)

2 min read

최근 Kali linux 2.0 이 릴리즈 되었습니다. 이에 맞춰서 kali 내부의 툴을 쉽게 설치할 수 있는 스크립트가 공유되고 있습니다. 저도 facebook group를 통해 정보를 얻었고, 확인해보니 간단하게 kali 저장소를 이용한 설치방법(apt)이지만 구조나, 주요 툴 리스트를 확인하며 설치가 가능하단 점에서 좋은 스크립트라고 생각들었습니다.

[METASPLOIT] Metasploit의 AutoRunScript를 이용한 침투 후 자동 환경 구성

1 min read

Metasploit 에선 AutoRunScript 라는 재미있는 기능을 지원합니다. 이 기능은 사용자가 미리 .rc 파일을 생성하여 동작할 모듈을 지정해놓고 Exploit 시 자동으로 등록한 동작을 수행하도록 할 수 있습니다. 이런 기능을 통해 공격자가 침투 후 수행해야할 부분에 대해 어느정도 시간 단축이 가능합니다.

MSFVENOM을 이용한 Android 침투 및 Meterpreter Shell 사용

2 min read

metasploit 은 공격을 위한 도구 중 정말 유용하고 Custom 하기에도 좋은 툴입니다. 대체로 linux, unix, windows 시스템에 대해 테스트를 하고 shell 을 삽입 했었는데, Android 에서 작동하는 Meterpreter shell 은 어떨까? 라는 생각이 들어 해보았습니다.

안드로이드 코드단에서 루팅 기기를 확인하는 방법들

~1 min read

다수의 모바일 악성코드는 사용자 디바이스의 루팅 여부를 확인하는 경우가 많습니다. 추가적인 root exploit 없이 쉽게 root 권한을 사용할 수 있으며, root 권한을 통해 안드로이드 OS에서 통제하지 못하는 부분에 대해서도 작업이 가능하기 때문입니다.

JAD(Java Decompiler)를 이용한 Android APK Decompile

3 min read

악성 안드로이드 APK 분석 시 많이 사용되는 툴인 jad에 관한 이야기를 할까 합니다. jad 는 주로 dex2jar 를 통해 디컴파일하여 분석하는 과정 중 디컴파일이 불가능한 부분(ERROR 노출)을 java 코드로 변환하여 확인하기 위해 많이 사용하였습니다.

[CVE-2015-1328] overlayfs local root exploit

1 min read

최근 케노니컬 사 홈페이지 및 Exploit-db 를 통해서 공유된 취약점입니다. CVE-2015-1328은 Ubuntu 12.04, 14.04, 14.10, 15.04 등 6/15일 이전 커널에서 동작하며 overlayfs 를 사용할 때 권한 상승이 가능한 취약점이며 해당 취약점을 통해 공격자가 쉽게 관리자 권한(root) 획득이 가능합니다.

Javascript 코드 난독화(Code Obfuscation)와 JS Packing

1 min read

코드 난독화란 코드를 쉽게 알아볼 수 없도록 만드는 기술입니다. 쉽게 생각하면 int a = 123 이란 코드를 int a = ((123+34+350-34-350)*0)+123 같이 좀 더 알아보기 어렵게 만드는 기술입니다. 물론 위의 대충 쓴 코드는 쉽게 볼 수 있지만 escape, unescape 함수 등을 이용해서 코드가 눈에 잘 들어오지 않도록 만들 수 있습니다.

Linux System hooking using LD_PRELOAD

3 min read

공유 라이브러리의 경로를 의미하는 LD_PRELOAD를 이용하여 Linux System 후킹에 대한 이야기입니다. 크게 시나리오를 보자면 LD_PRELOAD에 공격자가 .so 파일을 삽입하고 시스템 명령이 해당 so 파일을 로드하여 명령 내에서 사용되는 함수를 바꿔치기 하여 데이터를 숨기는 과정입니다.

MSFVENOM을 이용하여 Application에 Exploit Code 주입하기

1 min read

MSFVENOM

metasploit 에 포함된 기능 중 하나이며 간단한 명령으로 exploit 코드 생성, exploit이 포함된 프로그램 생성, 기존에 존재하는 프로그램에 주입하는 등 여러가지 행위가 가능합니다. msfpayload, msfencoder 로도 가능하지만 개인적으로는 venom 이 가장 편한 것 같습니다.

HTTP.sys Remote Code Exploit(CVE-2015-1635/MS15-034) 취약점

1 min read

최근 이슈가 됬었던 MS 보안패치 중 HTTP.sys Remote Code Exploit(CVE-2015-1635/MS15-034)에 대한 이야기가 있었습니다. 공격자가 HTTP 헤더를 조작하여 취약한 시스템에 이상을 발생시키는 취약점이며 윈도우 계열 서버인 IIS에서 가능하며, 어느정도 이슈가 있었던 것으로 보입니다.

SWF 디컴파일러 FFDEC (JPEX Free Flash Decompiler)

1 min read

SWF 디컴파일러인 FFDEC 에 대한 설치 방법 및 간단한 사용 방법입니다. FFDEC는 SWF 파일에 대해 쉽게 분석 가능하도록 코드단에서 확인이 가능한 툴 입니다. 여기서 잠깐 위키 피디아의 SWF의 정의에 대해서 한번 보면 아래와 같습니다.

NTFS File System 의 숨겨진 영역 ADS(Alternate Data Stream)

2 min read

요즘 포렌식, 윈도우즈 시스템에 관심이 생겼습니다. 거의 리눅스만 사용하기 때문에 윈도우즈 시스템의 재미있는 부분에 대해서 많이 모르고 있었더군요. 그 중 오늘은 ADS(Alternate Data Stream) 영역에 관련된 이야기를 할까 합니다.

iOS에서 usb 터널을 통한 SSH 연결 방법

~1 min read

IOS에서 작업을 할 때 터미널 어플리케이션 앱을 이용하는 것은 굉장히 불편합니다. 그래서 주로 SSH 연결을 통해 작업을 진행하는데, 네트워크를 사용할 수 없는 환경이나 속도에 이슈가 있는 경우 이 또한 작업하기에 조금 불편합니다.

Back to Top ↑

develop

PQ3 and PQC 🗝️

2 min read

Apple에서 조만간 iMessage에 PQ3라는 암호화 프로토콜을 적용할 예정이라고 발표했습니다.

Do you need a config? Now, Pkl

1 min read

최근에 Apple이 내부에서 사용하던 Configuration language를 오픈소스로 공개헀습니다. 바로 Pkl(피클)인데요, 과연 Pkl은 JSON과 YAML과 함께 Config계의 대표 주자가 될 수 있을까요?

Crystal-Lang is ❤️

2 min read

저는 최근에 Crystal-lang을 즐기고 있습니다. 간단한 토이 프로젝트부터 Noir란 사이즈가 점점 커지고 있는 프로젝트까지 Crystal을 통해 구현하고 있습니다. 오늘은 제가 Crystal을 좋아하게된 이유에 대해 이야기하려고 합니다.

DOM Handling with MutationObserver

3 min read

최근 ZAP은 SPA 기반의 앱을 쉽게 식별하기 위해 Client Side Integration 이란 기능을 추가했습니다. 이 이 때 DOM의 변화를 식별하기 위한 장치로 MutationObserver가 사용되었는데요. 오늘은 MutationObserver가 뭔지 그리고 보안 테스팅 시 어떻게 사용할 수 있을지 이야기해봅니다.

Lazy-loading iframe in Firefox

~1 min read

최근에 Firefox쪽에서 하나 업데이트를 예고 했습니다. 곧 img 태그에만 존재하던 lazy-loading이 iframe에도 적용되는데요. 성능적인 장점은 분명히 있겠지만, img와 달리 XSS의 리스크가 높은 iframe의 로드 시점을 통제할 수 있는 형태라 재미있는 이슈가 나올지 기대되기도, 반대로 또 걱정되기도 합니다.

Fiber concurrency

2 min read

동시성 프로그래밍은 재미있지만 구조나 사이즈에 따라 어려움을 동반합니다. 개인적으로도 도구 작성 시 자주 사용하기 때문에 제가 진행하는 프로젝트에서 자주 볼 수 있고, 블로그에도 Goroutine과 Sync, Ruby Concurrency 등 매년 동시성 관련해서 글을 작성한 것 같습니다.

WebAuthn과 Passkey

4 min read

여러분들은 패스워드 매니저를 사용하시나요? 저는 개인적으로 Apple의 암호 기능을 주로 사용합니다. 또한 icloud+도 사용하고 있어 이메일 가리기 + 암호 조합으로 가급적 서비스별로 계정과 패스워드가 겹치지 않는 상태로 유지하고 있습니다. 구글의 경우 Google password manager를 통해 비슷하게 사용하시는 분들도 있을거라고 생각합니다. Apple이나 Google의 이러한 기능들과 FIDO 관련 인증 방식들은 Passwordless의 대중화를 앞당겼고 이제는 Password를 입력하는 것이 점점 어색해지는 시기가 온 것 같습니다.

Zest + YAML = ❤️

1 min read

최근에 Zest 쪽의 Commit (zaproxy/zest/6d67925) 하나를 주시하고 있었습니다. 바로 Zest에서 YAML 포맷 지원에 대한 내용이였는데요. 드디어 공식 릴리즈가 이루어졌고 이제 Zest에서 YAML 포맷을 사용할 수 있게 되었습니다.

XSpear Reborn: Big Changes Coming

2 min read

제가 Dalfox 를 개발하기 전에 Ruby로 작성했었던 XSpear란 도구가 있었습니다. 동일하게 XSS를 테스팅하기 위한 도구였고, 현재 성능은 당연히 Dalfox쪽이 압도적으로 좋은 상태입니다. 그리고 작년부터 XSpear에 대한 Reborn 계획을 생각해 두었었는데, 최근 만들던 도구도 어느 정도 윤곽이 잡혀서 이제 본격적으로 XSpear에 대해 대규모 개편을 진행하려고 합니다.

Embed resources in crystal

2 min read

Crystal에서 리소스 파일을 바이너리에 Embed 하는 방법에 대해 기록해둡니다. 깃헙 이슈등을 찾아보면 stdlib로 만들어줄 것 같진 않았고 찾아보니 Rucksack이란 좋은 shard를 발견해서 간단하게 정리해둘게요. 참고로 Rucksack은 Linux와 macOS에서만 동작하고 Windows는 지원하지 않는다고 하니 이 점 참고하면 좋을 것 같습니다.

Default vs Release build in Crystal

1 min read

Crystal은 컴파일 언어로 바이너리로 빌드하여 사용할 수 있습니다. 그리고 공식 가이드에선 release build 시 —release flag 사용을 권고하고 있는데요. 오늘은 이 flag가 어떤 역할을 하는지, 왜 권고되고 있는지 정리해봅니다.

Homebrew로 패키지 제공하기 🍺

2 min read

제가 만든 도구는 대부분 Homebrew, Binary, RubyGem, Snapcraft 등을 통해 배포합니다. 특히 macOS의 경우 Homebrew를 통한 설치 비중이 엄청 높기 떄문에 Go 기반 앱들은 가급적이면 Homebrew를 지원하려고 하고 있습니다. 그리고 이러한 대부분의 작업은 Goreleaser란 도구를 통해서 진행하기 때문에 매우 편리하게 진행했었죠.

Encoding Only Your Choices, EOYC

2 min read

요즘 장난감 삼아 Crystal과 Elixir로 여러가지 코드를 작성해보고 있습니다. 특히 Crystal은 Ruby와 제가 예전에 한번 소개하기도 헀고 Ruby와 거의 유사한 문법에 속도까지 갖추고 있어 개인적으로 관심이 많았던 언어입니다. 최근에 여러가지 이유로 Crystal은 주력 언어로 만들어가고 있습니다. 오늘은 Crystal로 작성한 간단한 도구 하나 공유하려고 글을 작성해봅니다.

CORS Bypass via dot

1 min read

Origin 헤더와 ACAO(Access-Control-Allow-Origin) 헤더는 Cross-Origin 관계에서 데이터를 전달하고 수신하기 위한 헤더로 SOP(Same-Origin Policy)를 공식적으로 우회하기 위한 헤더입니다. 일반적으로 CORS라고 통용되어 부르며, 이는 JSON HijackingCSRF 취약점에 큰 접점을 가지고 있습니다.

ZAP Custom En/Decoder 만들기

2 min read

ZAP의 확장성은 Scripting Engine의 파워에서 나옵니다. URL, HTML, Base64 등 테스팅 단계에선 인/디코딩을 하는 경우가 굉장히 많은데요. 이 때 사용하는 Encode/Decode/Hash 기능 또한 Scripting으로 확장할 수 있습니다.

Broken link를 찾자! DeadFinder

1 min read

최근에 Broken Link(Dead Link)를 쉽게 찾기 위한 도구를 하나 만들었습니다. 제 블로그의 Broken Link를 찾기 위한 목적이였지만, 가볍게라도 한번 공유하는게 좋을 것 같아서 블로그 글로 작성해봅니다.

Rake(Ruby Make)

2 min read

Rake는 Ruby에서 사용되는 build utility로 Make유사합니다. rake란 이름 또한 ruby + make 에서 만들어진 단어로 일반적인 Ruby application과 Rails 등 여러가지 환경에서 개발 도구로써 사용됩니다.

Ruby Concurrency

2 min read

매번 어플리케이션을 만들 때면 동시성에 대한 고민을 하지 않을 수가 없습니다. 기능적인 구현에 직접 필요한 경우도 있고 퍼포먼스를 결정 지을 수 있는 요소이기 때문에 중요하다고 생각합니다.

Jekyll Collection 다루기

1 min read

최근에 Jekyll로 다시 이사 후 몇가지 기능들을 개발하고 있습니다. 그 중 하나를 해결하기 위해선 특정 type의 페이지들을 모아서 json으로 만들어주는 과정이 필요한데, Jekyll의 Collection 기능을 이용해서 쉽게 해결했습니다.

Hugo to Jekyll

1 min read

정말 설마설마 했습니다. 아니 이런 일은 없을거라고 장담했습니다. 작년에 Jekyll에서 Hugo로 전환한지 딱 1년만에 마음이 바뀌었습니다. 다시 Jekyll로 돌아갑니다.

Hex? Imhex and Hexyl

1 min read

여러분들은 어떤 Hex editor/viewer를 사용하시나요? 저는 Linux를 메인으로 사용할 떈 Ghex와 hexdump, macOS에선 hexyl와 vim(+plug)을 주로 사용합니다. 오늘은 크로스 플랫폼을 지원하는 엄청난 Hex Editor인 ImHex에 대해 소개해드리려고 합니다. 저도 이제는 ImHex와 hexyl 조합으로 사용합니다 :D

Docker와 Dumb-Init

2 min read

오늘은 도커에서 안정적인 구동을 위해 사용하는 dumb-init과 pid1 그리고 init 시스템에 대한 이야기를 하려고 합니다.

Go dependency(go.mod) 추적하기

~1 min read

제가 최근에 Dependabot alerts 에 확인된 취약점 중 패키지 확인이 안되는 취약점이 있었습니다.

Go에서 Stdin에 대한 테스트 코드 작성하기

1 min read

테스트 코드 작성 중 우리가 예측 가능한 함수 인자 값은 쉽게 체크가 가능하지만, 시스템으로 부터 넘어오는 데이터는 막상 작성하려고 하면 어떻게 해야할지 고민이 되기 시작합니다.

Golang Logrus에서 Channel hook 만들기

1 min read

Logrus는 golang의 아주 좋은 logger 패키지입니다. logrus는 hook을 이용해서 지정된 한번에 여러곳에 로그를 남길 수 있습니다. built-in hook으로는 현재 syslogio.Writer가 있고 저는 channel로 hook을 쓸 일이 있어 간단하게 작성하여 공유해봅니다 :D

개발자만? 아니 우리도 스크래치 패드 필요해! Boop!

1 min read

저는 종종 재미있는 앱이 있을지 앱스토어를 둘러보곤 합니다. 그러던 중 보안 테스팅에서 쓸만할 것 같은 도구를 찾아 이번 연휴동안 사용해보고, 괜찮다고 느껴서 블로그를 통해 공유해봅니다. 바로 Boop 입니다.

Go에서 HTTP gzip response 처리하기

1 min read

최근 dalfox에 독특한 이슈가 제보됬는데(오프라인으로도 한번 제보받은 사항이라 이미 삽질을 좀 헀던 상태였네요) 오늘 이를 해결하고 어떻게 해결했는지 간략하게 공유할까 합니다. 특별한 내용은 아니지만, golang에서 http 기반 개발을 진행할 때 알고 있으면 실수를 예방할 수 있는 부분이죠.

Hugo aliases에서 noindex로 인한 SEO 문제 해결하기

1 min read

Hugo에서 aliases를 사용하면 해당 주소는 meta tag를 이용한 redirect를 페이지가 생성됩니다. 이러한 형태는 일반적으로 url을 이동하기엔 적합하지만, 30x의 status code가 아니고 200이기 때문에 구글 등 검색 봇이 해당 페이지를 수집하게 됩니다.

pkg.go.dev에 go 패키지 즉시 업데이트하기

~1 min read

golang으로 개발된 앱은 pkg.go.dev에 저장되며 해당 사이트를 통해 패키지 정보를 볼 수 있고 실제 go get 으로 패키지를 가져올 때 이곳의 latest 버전을 가져오게 됩니다. 그래서 이 사실을 잘 몰랐던 과거의 저는 이런 실수도 했었던 기억이 나네요.

Github repo 내 Languages 변경하기 (.gitattributes)

1 min read

Github repository 페이지의 우측에는 해당 repo의 언어 통계인 Languages가 있습니다. 이는 페이지에 접근한 사용자로 하여금 이 프로젝트가 어떤 언어를 주력으로 구성되었는지 확인할 수 있는 지표가 되고, 일부 도구들은 이 데이터를 기반으로 오픈소스 프로젝트들을 분류하기도 합니다.

Go에서 아주 큰 JSON 파일을 핸들링하기

2 min read

최근에 시덥지 않은 문제로 구글링하다가 단순하게 해결한 일이 있어서 짧게 글로 공유 해볼까 합니다. 복잡한 문제로 생각해서 오히려 가까이에 있는 답을 놓치고 말았었네요.

Goreleaser에서 M1, Windows ARM64 지원하기

~1 min read

goreleaser의 각각 v0.157.0, v0.175.0 버전에서 M1 macbook, Windows ARM 64 지원이 추가되었습니다. 저도 제가 개발하는 도구에선 M1 지원이 약간 늦은 느낌이 있긴한데요. 관련해서 주의해야할 점들 정리해 둡니다.

Hugo에서 Sitemap-index 사용하기(split sitemap)

3 min read

sitemap.xml

sitemap.xml은 Sitemap protocol을 위한 XML schema로 웹 서비스가 포함하고 있는 링크들을 사용자에게 제공하기 위한 목적으로 구성되는 파일입니다. 아래와 같은 구조를 가지며, 사용자나 검색 봇 등은 이 파일을 참조하여 웹 페이지를 수집합니다.

Github action 성공 시 다른 action 실행하기

1 min read

Github action은 github에서 제공하는 CI/CD를 위한 도구입니다. yaml 포맷의 config 를 이용해서 코드 빌드, 테스트부터 deploy 까지 구현하기에 따라 정말 많은 기능을 자동으로 처리할 수 있는 도구이고 github를 사용한다면 jenkins나 다른 devops 도구를 버리고 이동할 만큼 충분히 좋은 기능성을 가지고 있습니다.

git subtree를 이용해 github pages에 배포하기

1 min read

hugo 등 jekyll이 아닌 static site generator를 이용하거나 별도로 개발해서 github pages에 페이지를 배포하는 경우 gh-pages 브랜치나 별도의 디렉토리에 배포하고 배포 path를 연결하여 github pages로 호스팅할 수 있습니다.

Hugo Shortcodes

1 min read

Hugo에는 Shortcode라는 snippet이 있습니다. 제가 hugo로 넘어오고 굉장히 맘에 들었던 부분인데요. 오늘은 shortcode가 뭔지, 어떻게 사용하는지 그리고 어떻게 쓰면 더 좋을지 이야기해볼게요.

Hugo Archetypes을 이용한 글 Template 사용하기

1 min read

Hugo에서는 content management를 위해 archetypes 라는 template file을 제공하고 있습니다. 이는 hugo new 로 새로운 글을 만들 때 자동으로 글에 필요한 정보를 작성해주며, 종류에 따라서 커스텀하게 작성할 수 있도록 제공해주는 기능입니다.

Goroutine과 Sync

3 min read

Go 하면 어떤 특징이 떠오르시나요? 구글의 언어, 빠르다 등 전반적인 개념에서 goroutine, 채널 등 디테일한 부분까지 많은 것들이 있을텐데요, 저는 제가 처음 고를 접했을 때 가장 재미있게 봤던 것이 goroutine과 채널이였습니다.

Html to Markdown in Cli

1 min read

어제 Hugo로 이사로 이사를 마무리하면서 못했던 작업을 하나 진행한게 있습니다. 바로 기존 jekyll 부터 유지해오던 blogger로 부터 넘어온 잔해, html 포스트들인데요. 물론 페이지 랜딩에는 전혀 지장이 없지만, html 파일 자체가 유지보수가 어렵다보니 글을 수정하기 까다롭다는 단점이 있었습니다.

Utterances에서 댓글 이동하기

~1 min read

간혹 github page의 repo 이전 등 utterances의 댓글을 이동해야할 경우가 생깁니다. 이번에 hugo 이전하는 작업을 진행하면서 테스트 하다보니, 간단한 트릭을 이용하여 댓글을 쉽게 옮길 수 있어 내용을 정리해봅니다.

Jekyll에서 Hugo로 이사가기 (Migration log)

7 min read

jekyll… 제가 예전에는 rubyist(ruby 사용자) 였습니다. 그러다가 2018~19년 쯤에 gopher(golang 사용자)가 되었고 이후부턴 만들고 있는 대다수의 도구는 golang 기반으로 만듭니다.

Golang의 nil과 interface nil의 재미있는 특징

1 min read

Null은 일반적으로 존재하지 않는 값 또는 메모리 주소를 의미하며 언어에 따라 null nil nan none undefined 등 여러가지 형태로 표현됩니다. 다만 null이란 개념이 언어마다 특성과 철학, 표현하는 방식에 따라서 달라지기도 하는데요. 오늘은 golang에서의 null인 nil의 특성 하나를 살펴보려고 합니다.

25 Keywords in Go

1 min read

Go supports only 25 keywords. It’s very simple, which has the advantage of a low learning curve. I’ve never posting it while using Go. Let me summarize the meaning of each keyword today.

go-jwt와 golang-jwt/jwt

1 min read

최근에 golang으로 개발한 도구 중 jwt 라이브러리를 사용한 대다수의 프로젝트에서 아래와 같이 Security dependency alert이 나타났습니다.

Ruby와 Google Indexing API를 이용하여 자동으로 신규URL 등록하기

4 min read

제가 블로그 글을 작성하고 commit - push 시 많은 작업들이 일어납니다. 대표적인 것들을 이야기 드리면, Jekyll build 및 deploy 과정이 진행되고 이미지 중 compress가 필요한 이미지는 compress 처리하여 용량을 줄이고, notify 등 여러가지 과정들이 github action에 녹아있습니다.

Go에서 자동으로 테스트 코드 생성하기(with gotests)

3 min read

저는 테스트 코드를 많이 작성하진 않습니다. 아무래도 본업이 보안 엔지니어링이다 보니 현업 개발자처럼 꼼꼼하게 테스트 코드를 작성하고 조금 더 나아가 TDD(Test-Driven Development)를 신경쓰면서 개발할 수 있는 여유가 있는 것도 아니구요.

rvm is not a function 에러 해결하기

~1 min read

Problem

저는 보통 글을 작성할 떄 맥북에서 진행합니다. 그래서 홈 서버에서는 직접 글을 작성할 일이 별로 없었는데, 디자인 좀 수정하기 위해서 서버에서 직접 작업하다 보니 jekyll serve 시 ruby 버전 관련 에러가 있었습니다. 요약하면 github pages gem은 2.x 버전만 지원하는데, 시스템 버전이 3.x 버전이라서 발생한 문제였고, 이를 rvm로 처리하고자 rvm use를 사용했더니 아래와 같은 에러가 발생했엇습니다.

Secure JWT and Slinding Sessions

3 min read

Sessions 이란?

Sessions은 컴퓨팅에서 비슷하지만 여러 의미로 사용되는 용어입니다. 일반적으로 상태를 의미한다고 보면 될 것 같고, 웹에서는 HTTP가 비 연결형 프로토콜이기 때문에 서버가 기존에 접속했던 클라이언트인지 확인할 수 있는 수단으로 사용됩니다. (파일 쿠키랑 비슷하죠. 다만 처리에선 약간 다르긴합니다.)

[Phoenix #4] Fixed bug in session entropy page

~1 min read

Problem

Session entropy 계산 시 특수문자가 반영되지 않는 이슈가 있었습니다. 그냥 자동으로 계산하기 귀찮아서 Session type 드롭박스에 Ascii로 선택 시 반영되도록 추가했었는데, 크게 효용성이 없는 것 같네요..

[Phoenix #3] Update session entropy page

~1 min read

Change note

  • 소숫점 3자리 까지 잘려서 Entropy 표현하도록 수정
  • 일부 문구 수정 및 table 등 간격 수정
  • Case , Length 등을 쉽게 수정할 수 있도록 이벤트 핸들러 변경(단일 Element에만 적용되도록)

Bump a go package version

1 min read

My Problem

간혹 go get 으로 제가 만든 도구를 설치 시 구버전(현재는 2버전대인데, 1버전대가..)이 설치되는 이슈가 있었습니다. 또한 pkg.go.dev에도 구버전이 마지막 릴리즈로 있고 변화가 없던 상태였죠.

Go flag에서 custom usage 만들기

2 min read

golang에서 cli 도구를 만들 때 가장 먼저 접하는 도구는 flag입니다. 저 또한 flag로 시작하여 cobra, unfave 등 여러가지 써보다가 결국은 잘 사용하던 cobra를 버리고 flag로 다시 돌아왔습니다. go의 내장형 option parser로 심플하지만, 편의성을 위한 부분들은 많이 적어서 때때로, 직접 오버라이드와 같이 라이브러리의 원본 함수를 수정하여 사용해야하는 경우가 있습니다.

Rails generate 시 멈추는 경우 해결 방법

~1 min read

제가 2019년부터 go를 메인언어로 확정하면서 ruby로 개발할 일이 매우 줄어들었습니다. 그래도 가끔씩 빠르게 작업이 필요한 경우 ruby를 의도하지 않게 사용하는데, 간혹 rails g, rails generate 시 멈추는 상황이 있습니다. 그럼 원인과 해결 방법에 대해 글 작성해봅니다 :D

MacOS Atom에서 이모지 사용 불가 버그 해결하기

~1 min read

Atom을 사용하던 중 은근히 불편한 부분이 하나 있었습니다. 바로 이모지를 사용할 수 없는 이슈인데요. 고쳐서 써야지 하다가 이제서야 솔루션을 찾아보고 적용해서 사용하니 패치 전까진 임시방편으로 쓸만한 것 같아 글로 간단하게 공유드립니다.

Git pull/merge 충돌 시 기본 에디터 변경, 에디터 띄우지 않기

~1 min read

git은 때때로 git pull 등 remote의 소스를 가져오는 중 충돌이 있는 경우 에디터가 열리며 정보를 변경할 수 있도록 됩니다. 저의 경우 nvim을 기본 에디터로 사용하는데, 코드 머지 단계에서 열리는 기본 에디터가 nano라 상당히 불편했습니다. 그리고 CI에서 이러한 팝업은 자동화된 push 까지 이어지는데 불편함이 발생합니다. 오늘은 기본 에디터를 변경하는 방법과 Auto-Edit을 무시하는 방법을 간단하게 정리해볼까 합니다.

[Phoenix #2] Added change note

~1 min read

Cullinan과 동일하게 Phoenix에도 change note를 추가했습니다. 이제부턴 phoenix 페이지에서 변경 이력에 대한 정보를 확인하실 수 있습니다. 구현 방식 또한 동일하니 아래 링크를 참고해주세요.

[Phoenix #1] Phoenix에 gist 기반 snippets가 추가

1 min read

이전부터 디자인/기능 등 블로그 변경사항에 대한 글도 작성하려고 했었는데, 올해되서야 재대로 시작되네요. 사실 뭐 중요한 정보거리는 아니고, 그냥 개인적으로 변경사항에 대한 기록이 있으면 좋을 것 같아서 태그 하나 추가하고 작성해봅니다. 아마 간단한 내용들만 들어갈 것 같아요.

How to applying IntelliJ theme in ZAP

1 min read

어제 BurpSuite의 Customizer에 대한 글을 썼었습니다. BurpSuite에서 FlatLaf의 IntelliJ Theme를 사용할 수 있도록 지원해주는 확장 기능이였고, 글 말미와 댓글에도 작성했듯이 ZAP 또한 2.10 버전부터 FlatLaf를 사용하고 있기 때문에 구현이 가능할거란 생각이 들었었습니다.

Make cloud base ZAP Scanning Environment Using github-action

1 min read

Hi hackers and bugbounty hunters :D Today, I talk about building a github-action-based ZAP scanning environment. As you know, there is no time limit for public repo, so you can configure a cloud-based vulnerability scanner for free 😉

Github 2FA 인증 이후 Authentication Error 해결하기

~1 min read

Gitub는 편의성 때문에 2FA(Two-Factor) 인증을 사용하지 않았었는데, Marketplace 업데이트를 위해 약간의 불편함을 감수하고 2FA를 설정했습니다. (어차피 다른 서비스에서 이미 많이 쓰고있던 상태라.. 뭐 사실 크게 불편할게 없을 줄 알았죠)

Jekyll Build Speed Up!

3 min read

종종 제 Github page는 빌드가 실패합니다. 물론 대략적인 이유는 알고 있었습니다. Github page는 약 최대 13분 전후 정도의 build time을 가질 수 있는데, 이를 넘어가게 되면 pending 되거나 실패합니다. 제 Jekyll의 빌드 시간이 15분 정도 걸리던 상태로 당연히 실패하는 경우가 발생했었죠.

Jekyll feed.xml 최소화하기

2 min read

RSS는 매우 오래된 기술이지만, 아직까지도 많은 웹 서비스에서 지원하고 사용되는 기술입니다. 일반 사용자가 리더를 통해 쉽게 글 목록을 받아서 읽을 수 있고, SEO 관점에서도 상당히 중요한 부분입니다.

workflow_dispatch를 이용한 github action 수동 트리거

1 min read

이번 주말에 집 서버에 있던 자동화 로직 중 일부를 github action으로 이동하는 작업을 진행했습니다. 어차피 git pro를 사용하고 있어서, 월 3000분의 private repo에서 사용할 수 있는 github action의 시간이 있기도하고, 아무래도 클라우드 환경이다보니, 피씨꺼짐 등으로 인해 cron이 동작하지 않을 가능성을 줄이기 위해서 이동을 결심했죠.

Jekyll에 Utterances, Giscus 댓글 적용하기

2 min read

최근에 블로그를 blogger에서 github page로 옮기면서 댓글을 작성할 수 있는 환경이 사라졌습니다. Jekyll에서 많이들 사용하시는 Disqus의 경우 개인적으로 광고 이슈때문에 좋아하지 않기 때문에 댓글 서비스를 다시 찾아봤고, github issue 기반의 댓글 서비스인 Utterances를 알게 되었습니다.

How to add custom header in ZAP and zap-cli

3 min read

The zap-cli is a tool that helps make ZAP easy to use on the command line. From simple scanning to CI/CD Pipeline, it’s a tool that’s used everywhere. Unlike other scanners, it does not support custom headers.

Write Metasploit Module in Golang

2 min read

Metaploit에서 2018년 12월부터 golang module 지원이 시작되었습니다. 저도 잘 모르고 있다가 최근에서야 알게 되었네요.

Cookie and SameSite

5 min read

올 2월부터 Chrome 브라우저에서 SameSite=Lax가 기본값으로 변경됩니다.

Update golang 1.10 to 1.13 with update-golang(subfinder install error fix)

~1 min read

SubFinder 설치 중 undefined: os.UserHomeDir , undefined: strings.ReplaceAll 에러가 발생해서 해결 방법 정리해둡니다. 아마.. 현재 일부 피씨에서 설치 시 위와 같은 에러가 발생할텐데요, 원인은 golang 의 버전 문제입니다.

Check logic vulnerability point using GET/HEAD in Ruby on Rails

3 min read

최근에 Github OAuth flow bypass 취약점이 공개되었습니다. 이 취약점은 Rails 앱의 특성을 이용한 취약점이고, Github만의 문제가 아니고 패치로 모든 Rails 앱을 보호할 수도 없습니다. Today, I going to review one vulnerability that needs to be checked in the Rails App environment through the Github OAuth flow bypass vulnerability. (B recently shared something interesting to me.)

[루비에서 Go로 넘어가기] Revel을 이용해 MVC 웹 구성하기

3 min read

Ruby에서 golang으로 주력 언어를 바꿔가는 중입니다. 이 과정에서 가장 문제가 되는 부분이 웹앱이였습니다. 이미 Rails에 익숙해진터라 대안이 될만한 여러 프레임워크를 찾아봤고, 2가지 생각이 나왔습니다.

Golang 으로 만든 웹 어플리케이션 Heroku에 배포하기

1 min read

요즘 공부도할겸 golang 으로 끄적끄적 만들어보고 있는게 있습니다. 그 중 일부는 웹 환경으로 구성하고 heroku에 띄울 생각인데, 루비처럼 사전에 세팅이 필요한 부분들이 있어서 내용 정리해둡니다.

Rails에서 HTTP Basic Auth 적용하기

~1 min read

HTTP Basic Auth는 HTTP에서 기본적으로 사용되는 인증 방식입니다. ID/PW를 Base64로 인코딩해서 Auth 헤더에 넣어 서버가 신뢰된 사용자인지 검증하는 방식으로 동작합니다.

HTTP Request(ZAP, Burp) Parsing on Ruby code

1 min read

XSpear 관련해서 이런 건의사항이 하나 있었습니다. Burp, ZAP 등에서 사용하는 패킷 데이터를 파일로 저장한 후 옵션을 주어 읽으면 자동으로 URL, Header 등을 파싱해서 사용하는 형태를 말씀하신 것 같습니다.(마치 sqlmap의 그것 처럼)

Ruby on Rails Double-Tap 취약점(CVE-2019-5418, CVE-2019-5420)

4 min read

간만에 취약점 리뷰해봅니다. 올 봄에 정리한번하고 최근에 추가로 정리했던거라 머리속에서 날아가기 전에 블로그 글로 남겨보아요. 우선 올 해 3월 정도에 레일즈 관련 취약점이 3개정도 올라왔었습니다. CVE-2019-5418 ~ 5420 이슈인데, 결과적으론 Rails에서 시스템 파일을 읽고, 명령 실행까지 가능한 3가지였습니다.

How to resolve duplicate mail transmission in Rails ActionMailer(중복 메일 전송 해결 방법)

~1 min read

Rails에서 ActionMailer를 이용하면 쉽게 메일 송/수신 로직을 처리할 수 있습니다. 그래서 ActionMailer로 여러가지 구성해서 사용하고 있는데, 특정 어플리케이션에서 메일이 중복으로 발송되는 이슈가 있었는데요, 찾아보니 정확한 이유는 모르겠지만 자체적인 버그로 보입니다. (중복 콜이 일어나는 것 같은데…)

Rails crono를 이용하여 스케줄링하기(Scheduling with crono on Rails)

2 min read

보통 유닉스 기반 PC에선 스케줄링을 위해 crontab 또는 at를 사용하고, 윈도우에선 서비스에 등록하는식으로 사용합니다. 이를 위해선 시스템에서 crontab 같은 도구 사용이 가능해야하며, PaaS 이상의 추상화가 이루어진 플랫폼에선 사용하기 어려운 경우가 대다수입니다.

[ Rails on Heroku ] 간단한 루비 레일즈 앱 구성 및 Heroku에 배포하기

2 min read


[ Rails on Heroku ] 자주 사용하는 heroku 명령어 정리 (https://www.hahwul.com/2019/04/what-is-heroku.html) [ Rails on Heroku ] 간단한 루비 레일즈 앱 구성 및 Heroku에 배포하기 (https://www.hahwul.com/2019/04/ruby-on-rails-distribute-heroku.html) [ Rails on Heroku ] Heroku란? 빠르게 환경 구성하기 (https://www.hahwul.com/2019/04/favorite-command-heroku.html)

Get cookie value in Javascript function

~1 min read

Javascript 에서 쿠키 값 가져오는 함수입니다. 자주쓰는데, 따로 정리 안해두니 삽질하는 것 같네요.. 메모 차 글 작성합니다. 코드스니핏!

Swift code’s Access Control(스위프트의 접근제어)

1 min read

iOS 개발하다가 자꾸 까먹어서 검색하길래 메모해둡니다. Swift에선 코드에 대한 접근 제어를 open, public, internal, file-private, private로 지정하고 있습니다. 다른 언어들에서 사용하는 것과 거의 유사하지만, 몇개 다른 부분들이 있기도 합니다.

How to Re-Size Image in Blogger

~1 min read

이거 이전글(video resize) 작성하면서 블로그 내 이미지도 최대 크기로 조정했는데, 메모할겸 남겨둡니다. google blogger에서 첨부/삽입한 이미지는 별로의 class,id를 주지 않기 때문에 .post-body(본문)에 직접 css를 지정해주어야합니다. 어차피 .post-body에서 img 태그가 쓰이는건, 첨부한 이미지가 전부인지라, 최대 크기 및 테두리만 지정하였습니다.

How to Re-Size Video in Blogger Posts

~1 min read

Problem

구글 블로거에선 글 작성중에 youtube 영상을 삽입하는 기능이 있습니다. 이 기능을 사용해서 영상을 삽입하게 되면 아래와 같이 굉장히 작은 화면으로 나타나집니다(이게 기본 크기..) 그래서 보통 youtube 페이지에서 공유(iframe 태그) 하여 코드 삽입하고 직접 크기 조정을 했었는데,약간의 트릭으로 손이 좀 덜가게 리사이즈할 수 있습니다.

editor.js - Simple Markdown Javascript Library

~1 min read

하루패드(haroopad) 알기전에 google blogger에 markdown 어떻게 적용할까 고민이 많았었는데요, 그러면서 찾아본것들 중 하나 간략하게 소개해드릴까 합니다. editor.js란 자바스크립트 라이브러리로 별다른 코드 없이 웹상에서 마크다운 에디터를 구현할 수 있습니다.

HarooPad - markdown 에디터(to html view, to plain html)

1 min read

markdown이 편한지라, 메모나 블로깅 초안 작성도 기본적으로 markdown으로 작성합니다. 다만 이 과정이 전문화된 에디터는 아니고 가벼운 코딩용으로 쓰던 geany에서 그냥 작성만 해서 사용했습니다.

Ruby gem 만들기(Make ruby gem)

1 min read

요즘 좀 정신없이 지내다보니 벌써 10월이네요.. 써놓은 글도 마침 없는 상태인지라 이번에도 간략한 글 작성할까 합니다. (아 10월의 첫글이 메모글이라니…) 많은 ruby application 들이 단순히 코드를 clone 해서 쓰는 형태보단 gem으로 패키징하여 배포하고 사용하는 형태를 가집니다.

Scala의 underscore(_)란?

1 min read

요즘 자꾸 스칼라랑 부딫히게 되네요. 써본적도 없는 언어지만 다른 언어랑 비슷하거니(Js+Java느낌..) 하고 봤는데, 어마무시하게 가독성을 떨어뜨리는 무언가를 발견하였습니다.

Consul에 대해 알아보자! (Service Mesh)

3 min read

최근 재미있는 프로젝트를 하고있는데, Health cheak, Service discovery 용도로 Consul을 써보게 되었고 글로 약간 정리해둡니다. hashicorp에서 만든 Consul, 거기서 지정한 DevOps 관련 내용 중 Monitor에 해당하는 부분입니다.

우분투 18.04 에서 카카오톡 설치하기(Install kakaotalk on ubuntu 18.04)

1 min read

📕특이사항 WineTrick에서 사용하는 MPSetup.exe가 download.microsoft.com에서 삭제된 것 같습니다. 우선 대안으론 직접 받아서 설치하면 되긴하는데, 아무래도 외부에서 받는 파일이니 바이러스 토탈 결과나 원본 있다면 원본이랑 비교 후 설치하시는게 좋을듯 싶습니다..아래 댓글 2개 참고해주세요.

Crystal - Ruby와 비슷하며 빠른 프로그래밍 언어

2 min read

올 초쯤에 Crystal이란 언어에 대해 잠깐 이야기들은적이 있습니다. Ruby 문법과 유사하다는 것만 듣고 드디어 조금 더 살펴봤네요. 아직 정식 릴리즈도 아닌 상태이니 어떤 언어인지 정도만 정리해둘까 합니다.

Git commit으로 Issue 종료하기(Closing issue with commit)

~1 min read

Git은 코드 관리 뿐만 아니라 Issue 관리에 있어도 굉장히 편리한 도구입니다. 코드 반영을 위해 Commit 하는 과정에서 특정 키워드와 이슈번호를 같이 기입해주면 자동으로 Issue에 대한 처리도 같이 진행됩니다.

Insomnia로 REST API를 쉽게 테스트하자 😎

1 min read

오늘 소개해드릴 툴은 REST API 테스팅 툴인 Insomnia 입니다. postman과 같이 API를 테스팅하기 위한 여러가지 기능들을 제공하고 있고, 개발자뿐만 아니라 보안쪽에서도 충분히 자주 사용할 수 있는 도구라서 간단하게 공유드릴까 합니다.

Ruby Style Guide와 Rubocop

1 min read

오늘은 루비 개발 관련해서 좋은 가이드가 있어 공유드릴까 합니다. 정말 정리가 잘 되어있습니다. 천천히 내용 읽어보면서 고쳐야할 습관들이 많이 보이네요.

ZAP에서 Passive Script 만들기

1 min read

요즘 몇가지 만들어쓰고 있는데, 간단하게 틀이되는 코드와 대략적인 설명으로 글 작성합니다.

Ruby에서 Exception 처리( begin-rescue-else-ensure-end )

~1 min read

벌써 7월이네요.. 오늘은 매번 코드 작성할때마다 귀찮지만, 뺴먹을 수 없는 중요한 친구에 Exception, 즉 예외처리에 이야기할까 합니다. 거의 정리 차원에서 간단하게 쓰는거니 빠르게 시작하죠.

JRuby로 Ruby와 Java 동시에 사용하기

1 min read

개인적으로 BurpSuite의 Extender를 만들 때 Java를 사용했습니다. 당연히 Burp가 Java base이고, API 등의 사용성 때문에 Java로 개발하는 것이 일반적인데요, 오늘은 Jruby를 이용하여 Ruby와 Java를 혼용하여 사용하는 방법에 대해 이야기하려고 합니다.

Javascript를 이용하여 간단하게 카카오톡 공유(카카오링크) 적용하기

2 min read

요즘은 SNS 공유 기능을 사용하지 않는 웹 페이지를 만나보기가 굉장히 어렵습니다. 특히나 블로그나 매체, 판매 사이트들은 컨텐츠의 공유에 있어 굉장히 좋은 방법이고 많이 사용되고 있기 떄문에 그렇다고 생각이 드네요. 이전부터 여러가지 SNS 서비스에 대해서 공유 버튼을 만들고 사용하다가 최근에는 google, twitter, facebook 정도만 유지하고 있었습니다.

Rails의 라우팅과 constraints를 이용하여 IP기반 ACL 만들기

2 min read

Rails Application에서 접근제어를 하는 방법은 여러가지가 있습니다. 예전에 포스팅하기도 헀고, 튜토리얼에서도 기본적으로 이야기되는 HTTP Auth를 이용한 인증방식 부터 세션, 로그인 기반 인증까지 여러가지 형태로 구현이 가능하죠. 오늘은 가장 기본적인 접근제어인 IP 기반 ACL에 대한 이야기를 할까 합니다.

Rails development 환경에서 error 정보 줄이기

~1 min read

rails application은 기본적으로 application 실행 시 development, test, production와 같이 실행 환경을 지정할 수 있습니다. 각각 실행 환경별로 디버그, 에러 처리 여부 등 환경과 처리 방식에 대해 결정할 수 있습니다.

Protocol-relative URL! //로 시작하는 URL

1 min read

웹 코드에서 주소를 사용할 때 double slash(//)를 많이 사용하시나요? 요즘은 대체로 double slash를 많이 사용하는 것 같습니다. 아무런 생각없이 사용하면서 정작 http:// , https:// 와 같이 프로토콜 명시된 경우와 단순하게 double slash로 구성된 주소의 차이에 대한 궁금증을 가지지 않았었네요.

Vim에서의 개발을 위한 최소한의 plugin 설정

1 min read

매번 느끼지만 글로 작성하지 않은 내용들은 나중에 다시 세팅하거나, 참고해야할 때 참 불편합니다. 꼭 필요할 때 보면 없다죠. 최근에도 vim 세팅을 다시 할일이 있어 하나하나 세팅하고 있는데, 한번쯤은 메모해두면 두고두고 볼 것 같다라는 생각이 들었습니다. 짧게나마 시간 내어서 글 작성해봅니다.

Learning Go Language - Hello world, GoRoutine

2 min read

요즘 Go langage를 배워볼까 합니다. 그래서 아주 천천히 틈날때마다 보고있는데, 조금씩은 정리해서 포스팅해볼까 합니다. 아마 익숙해지면 Ruby와 섞어서 코딩하게 될 것 같네요.

Bookmarklet이란?

1 min read

최근에 Bookmarklet의 존재를 알았습니다. 브라우저 AddOn만 개발해서 써오던 저에겐 나름대로 신세계 였네요. 오늘은 Bookmarklet에 대한 이야기를 하려합니다.

Rails에서 DB Column 추가하기

~1 min read

rails는 database schema 등을 migration 파일로 관리합니다. 이를 이용하면 이미 만들어진 앱에서 DB Schema를 변경하거나 쉽게 Rollback할 수 있습니다.

XCode Simulator에 App(.ipa) 파일 설치하기

~1 min read

취약점 테스트 기기로 쓰는 iOS 디바이스에 문제가 있어 Simulator를 알아보던 중 간단한 팁이 있어 작성합니다. 일반적으로 Simulator에 Xcode로 컴파일한 앱이 아니면 설치가 불가능합니다. 다만 약간의 트릭을 쓰면 쉽게 가능하지만요. 오늘은 app 파일인 .ipa(app)으로 Xcode Simulator에 설치해 봅시다.

Metasploit API와 msfrpcd, 그리고 NodeJS

5 min read

요즘 metasploit의 rpc에 대해 굉장히 관심이 많습니다. 대표적으론 msgrpc plugin 부터 msfrpcd 데몬까지 metasploit에서 rpc를 이용할 수 있는 방법들을 많이 찾아보고 있지요.

[METASPLOIT] Writing Custom Plugin for metasploit

3 min read

최근에 a2sv를 metasploit plugin으로 지원할 생각을 하고있습니다. 모듈 제작이 아닌 plugin 제작으론 경험이 거의 없기에.. 하나하나 찾아보면서 진행하기로 했죠.

RUBY에서 RQRCode를 이용하여 QR코드 생성하기

~1 min read

오늘은 RQRCode에 대해 작성할까 합니다. RQRCode는 Ruby에서 QR코드를 다룰 수 있는 라이브러리입니다. 간단한 코드로 쉽게 QR코드 생성이 가능하기 떄문에 QR코드 관련 서비스나 Rails 내 QR 코드 사용 등 여러가지 방면으로 활용할 수 있겠네요.

PuDB 이용하여 cli에서 python 디버깅하기

~1 min read

파이썬 디버깅을 위해 구긍링하던 중 stackoveflow에서 쓸만한 python debugger를 하나 찾았습니다. 바로 PuDB python 모듈입니다. 이 모듈은 파이썬 코드를 쉽게 디버깅하기 위해 만들어진 모듈입니다.

[WEB HACKING] PHP Comparison Operators Vulnerability for Password Cracking

2 min read

개인적으로 프로그래밍의 재미있는 요소는 연산자가 아닐까 싶습니다. 작은 연산자들이 모여 큰 흐름을 만들고, 우리같은 해커는 이 흐름을 틀어 예상치도 못한 행위를 이끌어내니 굉장히 재미있는 부분이죠.

이 특수문자는 어떻게 읽어야 할까요?

~1 min read

보안전문가나 개발자같이 실무적인 IT 업무를 하다보면 특수문자에 대해 설명해야할 때가 많이 있습니다. 저 또한 개발자에게 매번 설명해야하고, 그 과정에서 특수문자에 대한 언급이 많기 때문에 모르는 부분은 일부러 찾아서 정리해두고 했습니다. 생각해보니 이런 내용은 공유되면 좋을 것 같아 글로 작성해봅니다.

Form에서 체크박스 여러개 값 전달하기

~1 min read

웹 개발을 하다보면 체크박스를 이용하여 여러개의 값을 넘겨야 할 상황이 생깁니다. 대표적으로 옵션 같은 기능들이죠. form을 통한 전송 시 array 형태로 던지고 php에서 array로 받는다면 쉽게 구현할 수 있습니다.

[CODING] WebSocket - Overview , Protocol/API and Security

1 min read

WebSocket이란?

WebSocket은 웹 페이지에서 실시간으로 동작하는 웹 서비스를 만들어 줄 수 있는 표준 기술입니다. 일반적으로 웹 프로토콜인 HTTP는 Request와 Response 기반으로 새로 요청이 발생하면 페이지를 다시 그려야하는 구조입니다. 덕분에 쿠키라는 개념도 사용되게 되었지요. (인증 정보를 유지하기 위해)

[RUBY] Cuntom column sort function on Two-dimensional array

1 min read

루비로 코딩하던 중 귀찮은 일이 있었습니다. 바로 array에 대한 정렬 중 2차원 이상 배열에서는 제가 지정한 열을 기준으로 정렬할 수 있는 함수가 없던것입니다..

Ruby nokogiri를 이용한 Web Spider 만들기

3 min read

지난 포스팅에선 nokogiri를 이용한 parsing 을 했다면 이번에는 조금 더 발전 시켜서 간단한 Spider를 만들어볼까 합니다. 물론 훨씬 좋은 라이브러리들이 있지만 가장 기본이되는 nokogiri를 잘 안다면 많은 도움이 있을 수 있겠지요.

Ruby Nokogiri를 이용한 Web Parsing

2 min read

웹 서비스를 탐색하는 도구들을 만들다 보면 많이 접하게 되는 작업이 하나 있습니다. 바로 HTML, XML 등 구조화된 문서를 파싱하는 작업인데요. 오늘은 Ruby의 강력한 파싱 라이브러리인 Nokogiri에 대해 이야기할가 합니다.

[RUBY] 루비에서 Process/command 실행하기(Execute Process and command)

2 min read

C언어부터 ruby, python 등등 여러가지 언어 중 하나라도 해보셨다면 정말 반가운 함수가 있습니다. 바로 system() 함수(C언어 기준)인데요, 이 함수를 통해 시스템에 명령을 내리거나 새로운 프로세스를 생성할 수 있는 함수이지요. 이 함수로 많은 노가다 작업이 줄게되지요.

Java Applet을 이용한 공격 방법들

2 min read

웹 취약점에 대한 분석 시 주요 태그로 알려진 것들은 대다수 필터링 되어 있지만 간혹 빠지는 태그들이 있습니다. 그 중 오늘은 applet 태그에 대한 이야기를 하려합니다.

Ruby WEBrick에서 서버 사이드 코드 처리하기

1 min read

WEBRick 또한 웹 서비스를 위한 라이브러리이기 때문에 간단한 라우팅 기능을 지원합니다. 이를 이용하면 Static 파일만 서빙하는게 아닌 실제 웹 요청 시 원하는 코드를 동작시킬 수 있습니다.

JS,CSS를 이용해 팝업 레이어 만들기

1 min read

블로그 디자인 수정 중 검색 부분에 재미있는 생각이 나서 약간 작업을 하였습니다. 기존에 쓰던 검색창은 블로그에서 바로 보이고 입력 후 검색하는 방법으로 구성하였는데, 클릭하여 따로 팝업을 띄운 후 거기서 검색하는 방법이 더 좋을 것 같다는 생각에 수정하였습니다.

CSS를 통해 Body 태그 여백 없애기

~1 min read

블로그 페이지 개편 중 계속 여백이 생겨서 하나하나 css 를 뒤져가며, 잘못 적용한 것이 있는지 찾아보았지만 답은 가까운 곳에 있었습니다. HTML에서 여백이 발생할 때 CSS나 HTML 속성으로 간단하게 해결이 가능합니다. 아래는 이번에 코드에 적용한 부분인데요, leftmargin, rightmargin 을 통해 좌우 여백을 줄여줬었습니다.

Javascript 이벤트 핸들러를 이용하여 Input 태그 엔터 처리 Char Codes)

1 min read

웹 개발을 하다 보면 텍스트 박스에서 submit, button 을 누르지 않고 엔터만으로 데이터를 전송하거나 페이지를 이동하는 등 액션이 들어가야할 부분들이 있습니다. 간단하게 이벤트 핸들러랑 javascript 를 이용해서 텍스트 입력창에서 엔터를 누를 시 처리를 하도록 코드를 만들어볼 수 있습니다.

Javascript 코드 난독화(Code Obfuscation)와 JS Packing

1 min read

코드 난독화란 코드를 쉽게 알아볼 수 없도록 만드는 기술입니다. 쉽게 생각하면 int a = 123 이란 코드를 int a = ((123+34+350-34-350)*0)+123 같이 좀 더 알아보기 어렵게 만드는 기술입니다. 물론 위의 대충 쓴 코드는 쉽게 볼 수 있지만 escape, unescape 함수 등을 이용해서 코드가 눈에 잘 들어오지 않도록 만들 수 있습니다.

rvm, rbenv를 통한 Ruby 버전 관리

~1 min read

오랜만에 노트북에서 Metasploit 업데이트를 하였더니 패키지 하나가 의존성 문제가 걸렸습니다. gem 으로 설치하려 했으나, 발생하는 건 ruby 2.1 이상에서 설치 가능하다는 메시지였습니다.

iOS에서의 Python 2.7 버전 설치

~1 min read

탈옥 iOS 기기에서 apt 패키지로 파이썬을 따로 설치할 수 있습니다. 다만 버전이 2.5 버전인 상태인데, 많은 모듈이나 프로그램들이 2.7 이상의 디펜던시를 가지는 경우가 있어 상황에 따라 2.7 버전을 직접 설치해야할 필요가 있습니다.

Back to Top ↑

system

Docker와 Dumb-Init

2 min read

오늘은 도커에서 안정적인 구동을 위해 사용하는 dumb-init과 pid1 그리고 init 시스템에 대한 이야기를 하려고 합니다.

Kubernetes ingress에서의 413 에러 해결 방법

~1 min read

Kubernetes에서 nginx-ingress를 사용한다면 파일 업로드 등 큰 데이터를 전송할 때 413 Request Entity Too Large 에러가 발생할 수 있습니다. 이는 nginx-ingress에서 기본적으로 가지고 있는 최대 body size가 크지 않게 추가되어 있어서 발생하는 문제로 아래와 같이 ingress의 annotation을 설정하여 해결할 수 있습니다.

k8s livenessProbe를 이용한 self-healing

1 min read

Kubernetes의 self-healing

k8s는 자체적으로 self-healing이 가능합니다. 시스템이 영향받을 때 마다 pod, container 단위로 상태를 감지하고, 비정상적인 경우 자체적으로 교체하여 최대한 안정적인 서비스를 유지할 수 있도록 도와줍니다.

dpkg-deb error paste subprocess was killed by signal 에러 해결하기

~1 min read

어제 밤에 집 우분투 서버에 rust 기반 cli 도구인 hexyl와 bat을 설치하던 중 dpkg 에러를 발생하였습니다. 처음 보는 패턴이라 약간 당황했지만, 역시 에러 메시지 안에 답이 있어서 간단하게 해결했던 방법 정리해둡니다.

PKA 기반 ssh 환경에서 passphrase를 묻지 않도록 설정하기

~1 min read

Problem

보통 편의성과 보안성 모두를 위해 ssh는 PKA(Public Key Authentication) 기반으로 운영하는 경우가 많습니다. 특히나 AWS, Azure, GCP 등의 퍼블릭 클라우드 서비스들은 외부에 22 와 같은 ssh 포트를 오픈해야하는 필요성이 있기 때문에(ACL이 있던 없던) 당연히 PKA를 기본 인증 체제로 사용합니다. (패스워드는 되도록이면 사용하지 말라고 가이드하고 있죠.)

멀티 클라우드, 보안적 관점에서 바라보기

2 min read

AWS가 개최하는 Re:Invent라는 컨퍼런스에서 멀티 클라우드에 대한 이야기가 약간 언급되었나 봅니다. 대충 듣기론 멀티 클라우드를 위한 관리툴에 대한 이야기인 것 같습니다. 그래서 오늘은 멀티클라우드가 뭔지, 그리고 보안쪽 관점에선 어떤 방법으로 바라봐야할지 글로 풀어봅니다. (사실 저도 잘 몰라요. 그냥 생각나는 대로 적는거고, 의견은 댓글로 주세요 😅)

Docker scratch image from a Security perspective

2 min read

최근 도커 관련해서 테스트하던 중 Scratch 라는 이미지를 보게 되었습니다. 개인적으론 처음보는 이미지인데, 특이하게도 보편적인 OS에서 사용되는 명령어부터 여러가지 중요한 바이너리나 설정까지 없는 독특한 이미지였죠. 찾다보니 생각보다 재미있는 이미지여서 관련 내용과 저의 생각을 약간 더해서 글을 작성해봅니다.

Docker multi-stage build를 통해 이미지 경량화하기

1 min read

Why?

보통 베이스가 되는 도커 이미지는 생각보다 큰 용량을 가지고 있습니다. 거기에 의존성으로 추가적인 도구를 설치하고, 빌드하게 되면 생각보다 엄청 큰 용량으로 탄생합니다. 이런 경우에 alpine이나 minimum 이미지와 같이 경량화된 이미지를 사용하는 방법을 많이 사용합니다.

Use proxy in macos and pulse (with psproxy, for ZAP/Burp)

~1 min read

Problem

Have a light but troublesome problem. Pulse secure is enabled on the mac and proxy does not operate normally while connected. To solve this, I googled. and I find convenient tool and i share it

How to solv “argument list too long: grep” error using grep

1 min read

There was an unusual phenomenon in which grep did not work in a particular directory. The directory was a result of testing multiple url with a meg, and I thought it was a phenomenon that was caused by a large number of subfiles and directories, but the funny thing is that the grep works normally in the parent directory of that directory. 특정 디렉토리에서 grep이 동작하지 않는 특이한 현상이 있었습니다. 해당 디렉토리는 meg로 다수의 url을 테스팅한 결과였고, 하위 파일과 디렉토리가 많아서 발생하는 현상으로 생각했었는데, 웃긴게 해당 디렉토리의 상위 디렉토리에서 grep은 정상 동작합니다.

맥OS의 기본 VNC Client 사용하기

~1 min read

집에 있는 테스트용 서버에 VNC 사용해야할 일이 있어 설치&세팅하고 맥으로 붙으려고 찾아보다 보니 MacOS에는 기본적으로 VNC Client가 깔려있다고 하네요. 별도 앱으로 있는건 아니고 vnc:// 프로토콜을 통해 바로 접근할 수 있습니다. 만약 VNC Sever의 IP가 192.168.0.11 Port가 5901 이라고 가정했을 때 아래와 같습니다.

nq를 이용한 command line queueing

1 min read

최근 Pipeline으로 여러가지를 스캐닝해줄 도구를 만들고 있는데, 해당 구간에서 사용할 큐에 대해 고민하던중 심플한 툴이 있어서 공유해봅니닷.. (사실 장인정신으로 한땀한땀 서비스를 분석하는걸 즐기지만, 슬슬 개인적인 영역에도 자동화의 필요성을 점점 느끼고 있네요..)

MacOS에서 터미널앱이 차단된 경우 (Gatekeeper disable 하기)

1 min read

간만에 Arachni 소스를 좀 고쳐볼까 하고 보던 중 난감한 상황이 있었습니다. 언젠가부터 MacOS에서 앱스토어 출처가 아닌 어플리케이션 경우 기본적으로 실행을 차단하고 별도의 과정을 통해 실행할 수 있게 하고 있습니다.

Golang 으로 만든 웹 어플리케이션 Heroku에 배포하기

1 min read

요즘 공부도할겸 golang 으로 끄적끄적 만들어보고 있는게 있습니다. 그 중 일부는 웹 환경으로 구성하고 heroku에 띄울 생각인데, 루비처럼 사전에 세팅이 필요한 부분들이 있어서 내용 정리해둡니다.

[ Rails on Heroku ] 간단한 루비 레일즈 앱 구성 및 Heroku에 배포하기

2 min read


[ Rails on Heroku ] 자주 사용하는 heroku 명령어 정리 (https://www.hahwul.com/2019/04/what-is-heroku.html) [ Rails on Heroku ] 간단한 루비 레일즈 앱 구성 및 Heroku에 배포하기 (https://www.hahwul.com/2019/04/ruby-on-rails-distribute-heroku.html) [ Rails on Heroku ] Heroku란? 빠르게 환경 구성하기 (https://www.hahwul.com/2019/04/favorite-command-heroku.html)

MacOS에서 Proxy 설정하기(for ZAP, BurpSuite)

~1 min read

MacOS에서 프록시 설정하는 방법 메모해둘까 합니다. 사실 뭐 별다른건 아니고.. 다른 OS에서 직접 설정하는 것과 동일합니다. 다만 MacOS의 경우 좀 더 On/Off가 쉬운 편이라 별도의 프로그램이 필요하단 느낌을 받진 않았네요.

Windcard(*) Attack on linux (와일드 카드를 이용한 공격)

2 min read

조금 철 지난 기법이지만 관심이 적어 모르고 있던거라.. 글로 작성해둡니다. wildcard는 굉장히 많은 영역에서 사용되는 문자이고 컴퓨팅, 프로그래밍에선 더더욱 많이 사용되는 문자들입니다.

unix timestamp 2038 버그(Year 2038 problem)

~1 min read

최근에 timestamp 계산할거 있어서 구글링해서 웹 페이지 찾아서 사용했었는데요, 해당 웹 사이트에서 이런 내용이 있어 조금 찾아보았고, 재미있는 내용이라 가볍게 공유드립니다.

리눅스에서 OWASP ZAP과 BurpSuite의 색상 바꾸기

2 min read

아주 예전부터 Burp suite, ZAP의 색상을 바꿀 수 있으면 좋겠다는 생각을 했었습니다. 관련해서 양쪽 개발자분꼐 여쭤봤지만 동일하게 코드 수정을 매우 어렵다고 답변 들었습니다. (당연한 이야기…, 역시 자바란)

[LINUX] Plank Dock - 심플하고 깔끔한 Dock Application

1 min read

리눅스 유저라면 Dock을 사용하시거나 한번쯤은 꼭 들어봤을거라 생각합니다. Dock 어플이 아니여도 xfce 패널이라던지, 유니티의 기본 dock gnome3의 dash dock 등 자연스럽게 접하게 되어있죠.

[LINUX] How to install xfce on blackarch linux

~1 min read

개인적으로 gnome과 xfce를 좋아합니다. 그중에서도 xfce를 최고로 생각하는데, 그 이유는 클래식의 익숙한 느낌과 빠른 속도 때문이죠.

[LINUX] BlackArch Linux install tip!

1 min read

최근에 OS 배포판 변경을 시도했다가.. 다시 Debian으로 돌아왔는데요 (이제는 5일씩 밤을샐 수 없네요.. / 인간은 실수를 반복하죠)

[DEBIAN] Thunder Bird에서 Anigmail, GnuPG(gpg)를 통한 이메일 암호화

3 min read

오늘은 암호화된 메일 통신을 위해 GPG를 이용한 키생성과 Thunder Bird에 연동하는 과정을 이야기할까 합니다. 일반적으로 쓰는 메일 서비스들이 암호화되어 안전하게 전송된다고는 하지만 우리는 신뢰할 수 없기 때문에 종단 간 암호화로 더 튼튼한 이메일을 사용하죠.

[DEBIAN] terminator를 이용한 창 분할 터미널 사용하기

~1 min read

오늘은 아주 매력적인 terminal program에 대해 소개해드릴까 합니다. 창 분할이 컨셉인 터미널 프로그램이죠. 저는 주로 tilda와 gnome-terminal 사용했는데, terminator를 보고 gnome-terminal을 빼버리게 되었네요.

[DEBIAN] SquashFS - compressed read-only file system for Linux

1 min read

서버 PC에 리눅스를 재설치 해야할 일이 생겨 unetbootin으로 굽던 중 일시적인 딜레이로 인해 잠깐 멈춰있었습니다. 그 중 눈에들어온 것이 하나 있는데요. 바로 “SquashFS” 입니다.

[DEBIAN] Using Redmine on Debian and Apache server, and Change a theme

2 min read

프로젝트 관리 프레임워크는 아주 많은 종류가 있습니다. 그 중 Redmine, 즉 Rails로 만들어진 Ruby 기반의 프레임워크에 대해 이야기할까합니다. 간단하게 설치 과정에 대한 이야기로 진행하겠습니다.

[HACKING] BlackArch Linux Install, Review (Arch linux for Pentest)

2 min read

이번에 가상머신 정리좀 할 겸 최근에 이야기 나왔던 BlackArch를 설치해봤습니다. 개인적으로 Arch Linux를 써본적이 없기 때문에(딱 한번 설치만 해봤던거 같네요) 기대감을 지닌 채 구성을 하였습니다.

[SYSTEM HACKING] RPC Port Map Dump를 이용한 서비스 Port 확인

1 min read

System에 오픈되어 있는 Port 를 확인하는 방법에는 여러가지가 있습니다. 대표적으로 port 에 대해 직접 요청하여 확인하는 방법(Syn Scan, XMAS 등등)이 있지요. nmap을 통해 서비스에 있는 포트들에 대해 확인하게 되는데 이 중 rpc 관련 포트가 있다면 좀 더 세심하게 스캔이 가능합니다.

TOCTOU(Time-of-check Time-of-use) Race Condition

1 min read

간만에 내용 정리할겸 Race Condition Attack에 대해 작성해볼까 합니다. 일단 Race Condition 기법은 이름 그대로 “경쟁조건” 을 의미하는 공격이고 취약한 프로그램이 사용하는 부분을 동일하게 점유하여 경쟁하고 반복적인 요청 중 공격프로그램이 이길 시 공격자가 원하는 흐름으로 프로그램의 로직을 바꿀수가 있습니다.

64bit Linux Execve Shell Code 만들기

4 min read

오늘은 64비트 쉘코드에 대한 이야기를 할까 합니다. 예전에 이쪽 분야 관심을 가졌을 초반 쯤에 32bit에 대한 쉘코드를 만들고 사용했었지만 지금은 일 특성상 딱히 쉘코드를 사용할 일이 굉장히 적어졌기에 간만에 보는 느낌입니다.

grep -v , -E 옵션을 이용한 문자열 제외하여 찾기

~1 min read

오늘은 terminal에서 데이터를 걸러낼 때 많이 사용하시는 grep에 대한 이야기를 할까 합니다. 특별한건 아니고 -v(invert)와 -E(regex)를 이용해서 원하는 패턴의 값만 걸러내는 방법입니다.

/proc/self/maps 파일을 이용하여 실행중인 시스템 메모리 주소 확인하기

1 min read

모바일 악성코드 분석 중 /proc/ 하단 데이터를 건드리는 코드가 있어 추가로 내용 더 써서 작성하였습니다. 참고로 /proc 디렉토리는 리눅스에서 사용되는 디렉토리이고 시스템의 프로세스 정보를 담고 있습니다. 간단하게 구조를 살펴보자면 아래와 같습니다.

Trinity를 활용한 System call Fuzzing

2 min read

취약점을 찾기 위해 하는 작업 중 큰 부분을 차지하는것이 바로 Fuzzing 입니다. Fuzzing 을 돕는 프로그램을 Fuzzer라고 부르는데, Fuzzer 중 Linux 시스템에서 Syscall에 대한 Fuzzing 작업을 수행할 수 있는 “Trinity” 라는 툴에 대한 이야기를 할까 합니다.

[HACKING] katoolin 을 이용한 Kali Linux Hacking tool 간편 설치(Easy Install Kali Linux Hacking Tool)

2 min read

최근 Kali linux 2.0 이 릴리즈 되었습니다. 이에 맞춰서 kali 내부의 툴을 쉽게 설치할 수 있는 스크립트가 공유되고 있습니다. 저도 facebook group를 통해 정보를 얻었고, 확인해보니 간단하게 kali 저장소를 이용한 설치방법(apt)이지만 구조나, 주요 툴 리스트를 확인하며 설치가 가능하단 점에서 좋은 스크립트라고 생각들었습니다.

[DEBIAN] Pidgin(on Debian) 에서 Facebook 사용하기

1 min read

리눅스에서 사용할 수 있는 메신저 종류 중 유명한 pidgin 에 대한 이야기입니다. pidgin은 여러 메신저를 통합하여 사용할 수 있고, facebook, nateon 등을 지원하기 때문에 국내 리눅서도 많이 사용하는 것으로 생각됩니다.

Linux System hooking using LD_PRELOAD

3 min read

공유 라이브러리의 경로를 의미하는 LD_PRELOAD를 이용하여 Linux System 후킹에 대한 이야기입니다. 크게 시나리오를 보자면 LD_PRELOAD에 공격자가 .so 파일을 삽입하고 시스템 명령이 해당 so 파일을 로드하여 명령 내에서 사용되는 함수를 바꿔치기 하여 데이터를 숨기는 과정입니다.

NTFS File System 의 숨겨진 영역 ADS(Alternate Data Stream)

2 min read

요즘 포렌식, 윈도우즈 시스템에 관심이 생겼습니다. 거의 리눅스만 사용하기 때문에 윈도우즈 시스템의 재미있는 부분에 대해서 많이 모르고 있었더군요. 그 중 오늘은 ADS(Alternate Data Stream) 영역에 관련된 이야기를 할까 합니다.

Gnome3 application menu 설정하기

~1 min read

gnome3 에서 어플리케이션 메뉴에 대해 설정하는 방법입니다. gnome 버전이면 유사한 형태로 설정이 가능합니다. 데비안 메뉴 내 어플리케이션은 /usr/share/applications 디렉토리 하위에서 설정이 가능합니다.

Debian에서 왼손 마우스 커서 테마 적용하기

~1 min read

왼손으로 마우스를 사용하다 보면 오른손 잡이 기준인 커서가 참 불편합니다. 오늘은 데비안 환경에서 마우스 커서를 왼손 커서로 변경하는 방법에 대해 작성합니다. 마우스 커서 테마적용과 동일합니다. 단 모양이 반대 방향이죠.

Back to Top ↑

zap

ZAP 2.14 Review ⚡️

3 min read

생각보다 엄청 빠른 주기로 ZAP 2.14 릴리즈가 발표되었습니다 🎉⚡️

ZAP Map Local로 쉽게 Fake Response 만들기

2 min read

보안 테스팅에선 HTTP Response를 자주 변경해야할 경우가 많습니다. 이럴 때 저는 보통 ZAP에선 breakpoint와 replace 기능, 그리고 스크립팅을 주로 사용했었습니다. (+Proxify의 DSL)

Zest + YAML = ❤️

1 min read

최근에 Zest 쪽의 Commit (zaproxy/zest/6d67925) 하나를 주시하고 있었습니다. 바로 Zest에서 YAML 포맷 지원에 대한 내용이였는데요. 드디어 공식 릴리즈가 이루어졌고 이제 Zest에서 YAML 포맷을 사용할 수 있게 되었습니다.

ZAP’s Client Side Integration

2 min read

최근에 ZAP에 재미있는 Addon이 추가됬습니다. GSoC(Google Summer of Code) 2023의 결과물로 BurpSuite의 Navigation Recorder와 비슷해보이는 기능으로 릴리즈 직후부터 틈틈히 가지고 놀아본 결과 다른 의미로 가능성이 보이는 Addon이란 생각이 들었습니다.

Customize ZAP HUD 🎮

1 min read

Today, I write a post about how to use ZAP HUD in an engaging manner. While ZAP HUD may not have incredibly useful features at the moment, experimenting with it could be worthwhile since it has the potential to bring about changes in the analytical approach.

Optimizing ZAP and Burp with JVM

1 min read

누군가가 저에게 Application Security, Pentest 등에서 가장 활발하게 사용되는 도구를 선택하라고 하면 당연히 Burpsuite와 ZAP 같은 Proxy 도구를 선택할 것 같습니다. 최근 Caido가 많이 올라오는 추세이긴 하나, 장기간 리드 역할을 수행해 온 두 도구를 따라가기엔 아직 충분한 시간이 더 필요할 것으로 보입니다.

ZAP 2.13 Review ⚡️

1 min read

예상보다 훨씬 빠른 시기에 ZAP 2.13이 릴리즈되었습니다. 보통 매년 가을, 겨울중에 릴리즈가 있었는데, 이번에는 여름에 릴리즈가 생겼네요. 변화된 부분이 크진 않아서 릴리즈 노트를 보면 대부분 알 수 있습니다. 2.13 릴리즈 직후부터 몇일 동안 살펴보고 느꼈던 점 위주로 작성해봅니다.

ZAP Site Tree에서 404 페이지 한번에 지우기

~1 min read

ZAP의 Site tree는 Burp와는 다르게 404 Not found도 보여주고 있습니다. 종종 쓸만한 정보가 되기 하지만 대체로 보기 불편한 존재입니다. ZAP에서는 공식적으로 기능을 제공해주고 있지 않기 때문에 간단하게 스크립팅하여 제거하는 것이 편리합니다. 간단하게 공유해봅니다.

Cross handling Cookies in Zest

3 min read

오늘은 Zest 스크립트에서 Headless Browser와 일반 ZAP 요청간 Cookie를 처리하는 방법에 대해 이야기하려고 합니다. Headless Browser와 ZAP 내부의 Req/Res 간에 쿠키 교환으로 여러 상황에서 웹 요청을 쉽게 처리하여 원하는 보안 테스팅, 자동화 루틴을 이어갈 수 있습니다.

ZAP에서 우아하게 Cookie 기반 Auth 테스팅하기

3 min read

Web의 Authorization, Permission, Access Control 테스팅 시 어떤 방법을 활용하시나요? 보통 보안 테스팅 단계에선 권한을 바꿔가며 수동으로 테스트하거나 자동화된 도구를 통한 테스팅, 또는 두개를 병행하여 테스트합니다. 그리고 자동화된 테스팅을 위해선 Burpsuite, ZAP, CLI Tools 등 여러가지 도구를 사용합니다.

ZAP Custom En/Decoder 만들기

2 min read

ZAP의 확장성은 Scripting Engine의 파워에서 나옵니다. URL, HTML, Base64 등 테스팅 단계에선 인/디코딩을 하는 경우가 굉장히 많은데요. 이 때 사용하는 Encode/Decode/Hash 기능 또한 Scripting으로 확장할 수 있습니다.

Front-End Tracker로 DOM/Storage 분석하기

2 min read

ZAP 팀에서 관리하는 도구들 중에 유독 관심이 가던 도구가 하나 있었습니다. 오늘은 드디어 정리를 마무리해서 블로그 글로 공유드리면서 어떻게 사용하는지, 이걸 통해 무엇을 할 수 있는지 이야기드리려고 합니다.

ZAP 2.12 Review ⚡️

2 min read

드디어 ZAP 2.12 버전이 릴리즈되었습니다. 🎉👏🏼🍾 10월 중순쯤에 릴리즈 예정이였지만, 이슈로 약간 늦어졌다고 하네요. 오늘은 ZAP 2.12 버전에서 바뀐 내용들을 리뷰해보도록 하겠습니다. 그럼 시작하죠.

Param Digger! Easy param mining via ZAP

1 min read

올해 ZAP의 GSoC 프로젝트는 Param Mining을 하는 AddOn이 선정 되었었습니다. BurpSuite의 Param Miner를 모티브로 쉽게 Mining하는 것이 목표가 되었기에, Scripting과 Fuzzing으로만 Param Mining을 제 입장에선 매우 반가운 소식이였었죠.

ZAP⚡️ Replacer VS Sender Script

2 min read

ZAP에서 모든 요청에 새로운 헤더나 데이터를 추가하려면 어떻게 해야할까요? 보통은 Replacer 라는 기능을 이용해서 값을 변경하거나 새로 추가할 수 있습니다.

간단하게 ZAP Scripting 배워보기

1 min read

오늘은 ZAP Scripting을 처음 접할 때 익숙해지기 좋은 예제 두가지를 소개해볼까 합니다. 이 글을 읽어주시면, 간단한 코드 작성으로 ZAP에서 데이터를 조회하거나, 3rd party 스캔을 요청하는 방법을 얻어가실 수 있을거에요 😊

ZAP Forced User Mode!!

1 min read

제가 작년부터 ZAP의 Authentication / Authorization 기능들에 대한 이야기를 많이 했었던 것 같습니다. 실제로 테스팅에도 많은 부분들을 적용하고 사용하고 있었습니다.

Input/Custom Vectors를 사용하여 ZAP에서 정밀하게 취약점 스캔하기 🎯

1 min read

Active Scan

먼저 Active Scan에 대한 이야기를 가볍게하고 시작하겠습니다. ZAP의 Active Scan은 수집된 URL을 기반으로 지정된 패턴, 로직으로 자동화된 보안 테스팅을 하는 기능입니다. 보편적으론 사이트 전체에 대한 스캔이 많이 언급되지만, ZAP의 강점 중 하나는 원하는 HTTP Request를 대상으로 단건의 스캐닝을 쉽게 할 수 있기 때문입니다.

Zest script in CLI

2 min read

ZAP의 강력한 기능인 Scripting에서 한번 더 강력하게 만들어 주는 것이 바로 Zest script입니다. JSON 기반의 스크립트로 웹 Req/Res 그리고 Headless browser에 대한 컨트롤, 마지막으로 Assertion 등 테스팅 기능을 이용해 간단한 코드로 복잡한 테스팅을 할 수 있는 스크립트입니다. 자세한 내용은 제가 전에 작성했던 글들을 참고해주세요.

ZAP에서 Zest Script로 Headless 기반의 인증 자동화 처리하기

3 min read

최근에 Headless 기반의 Authentication script를 만들고 있었는데 약간의 어려움이 있었습니다. 실제로 headless browser를 통해 인증 처리는 쉬우나 그 뒤에 ZAP이 이를 인지하게 하는 것이 쉽지가 않았었는데요. 문뜩 제가 예전에 Zest script를 작성할 때 Client 관련 항목을 봤던게 갑자기 기억이 나서 GUI로 작성해보니 역시나 Client(Headless browser)를 지원하는게 맞았네요.

ZAP Active Scan 시 Progress와 Response chart 활용하기

2 min read

오늘은 ZAP의 ActiveScan에서 볼 수 있는 Progress와 Response chart에 대한 이야기를 잠깐 하려고 합니다. 뭔가 크게 도움되는건 아니지만 습관적으로 제가 창에 띄어두고 있는게 바로 Scan에 대한 Progress인데요. 왜 띄우고, 어떻게 사용하는지 이야기해보죠.

ZAP Bookmarklet for Speed up

1 min read

Bookmarklet

Bookmarklet은 Javascript 함수를 Bookmark에 추가하여 마치 브라우저 확장 기능과 유사하게 사용하는 기법으로 간단한 생성 방법에 비해 웹에서의 불편했던 작업들을 단축시킬 수 있어서 많은 사람들이 애용하는 기술입니다.

ZAP HTTP Sessions를 통해 간편하게 세션 기반 테스팅하기

2 min read

ZAP에는 HTTP Sessions라는 기능이 있습니다. 이름과 옵션에 있는 내용을 보고 세션 처리 관련된 기능이구나 생각만 했지 실제로 한번도 사용해보지 않았던 기능입니다. 오늘 놓친 기능이 있을까 싶어서 메뉴를 돌아다니던 중 발견하여 테스트해봤는데 생각보다 테스팅의 불편함을 줄여줄 수 있는 부분으로 보여서 글로 소개해드리려고 합니다 :D

ZAP HUNT Remix

1 min read

제가 오랬동안 잘 써오던 도구가 있었습니다. 바로 HUNT인데요! 저 또한 분석하는 방법 중 Data Driven Testing을 선호하는 편이라 HUNT 스크립트를 정말 잘 쓰고 있었습니다.

Context Technology로 ZAP 스캔 속도 올리기

~1 min read

ZAP의 Context(Scope)에는 Technology 라는 항목이 존재합니다. 이는 Context > Technology 경로에 존재하며 자세히 살펴보면 DB, Language, OS 등 여러가지 Technology 리스트와 체크박스가 존재합니다. 기본적으로 전부 체크되어 있습니다.

ZAP Structural Modifier

2 min read

저는 취약점을 찾을 때 중요한 3가지를 뽑으라고 한다면 아마도 기술에 대한 이해, 대상에 대한 이해, 그리고 센스를 택할 것 같습니다. 물론 이외에도 중요한 요소들은 정말 많겠지만 이 3가지는 일할 때 가장 많이 느끼는 부분이였어요.

Ajax Spidering 시 브라우저 엔진 별 성능 비교 🏁

3 min read

ZAP의 AjaxSpider는 headless browser를 통해서 직접 브라우징하며 Spidering 하는 기능입니다. 기본적으로는 Firefox가 설정되어 있지만, 개인의 취향에 따라 Chrome, PhantomJS 등 여러가지 browser(headless or common)를 사용할 수 있습니다.

MyEnv := ZAP+Proxify+Burp

3 min read

여러분들은 보안 테스팅하실 떄 어떤 도구들을 사용하시나요? 저는 ZAP을 메인으로 그리고 Burpsuite를 보조 스캐너로 사용합니다. 제가 2021년 마지막글(“나의 메인 Weapon 이야기“)에 Proxify에 대해 언급을 했었습니다. 오늘은 이 Proxify를 이용하여 제가 새로 구성하려는 분석 환경과 이유, 그리고 이를 통해 더 얻고자 하는 것들에 대해 이야기하려고 합니다.

System Hardening을 피해 RCE를 탐지하기 위한 OOB 방법들

3 min read

여러분들은 RCE(Remote Code Execution)를 식별하기 위해 어떤 방법을 사용하고 있나요? 저는 개인적으로 OOB(Out-of-band)를 즐겨서 사용합니다. Sleep 등 time 기반도 정확 하지만, 비동기 로직이 많은 요즘 time 보단 oob가 더 정확하다고 생각이 드네요. (물론 둘 다 체크하지만요 😊)

Attack Surface Detector를 이용해 소스코드에서 Endpoint 찾기

1 min read

제가 일할 때 종종 사용하는 ZAP/Burp Addon이 있는데, 최근 에러가 있어서 찾다보니 제가 한번도 블로그에서 언급한적이 없었더군요. 그래서 오늘은 그 도구인 Attack surface detector에 대해 이야기할까 합니다.

ZAP의 새로운 Networking Stack

2 min read

지난 목요일 밤 ZAP Developers Groups에 simon이 한가지 내용을 공유했습니다. 바로 ZAP의 Networking Layer에 대한 이야기고, 저는 제목을 보자마자 어떤 내용인지 직감했습니다. (제가 정말 기다렸던 내용이거든요 🤩)

Custom Payloads로 ZAP 스캐닝 강화 🚀

3 min read

오늘은 제가 최근에 ZAP에서 약간 관심있게 보고있던 기능 하나를 소개해드릴까 합니다. 바로 Custom Payloads인데요. Fuzzer나 ZAP의 Scripting engine을 사용하지 않고 조금 더 쉽게 지정된 페이로드 기반으로 테스트를 할 수 있어서 알아두시면 보안 테스팅이나 자동화 구현에서 잘 사용하실 수 있을거란 생각이 듭니다.

나의 메인 Weapon 이야기 ⚔️ (ZAP and Proxify)

2 min read

한국 기준으로 새해까지 약 30분이 남았고, 올해의 글은 이 글이 마지막 글이 될 것 같습니다. 분명 2020 회고한지가 얼마 안된 것 같은데, 벌써 2021도 회고도 이미 지나버렸네요 😱

ZAP의 새로운 Import/Export Addon, 그리고 미래에 대한 뇌피셜

1 min read

최근에 ZAP 내 여러가지 Import, Save 관련 기능들이 “Import/Export”란 이름의 새로운 Addon으로 통합되었습니다. 사용자 Interface 상에선 변화가 없어서 크게 달라진 건 없지만 이를 통해 앞으로의 ZAP에서 Import/Export 기능에 대한 방향성을 엿볼 수 있어서 글로 작성해봅니다 😎

Log4shell 전 세계의 인터넷이 불타고 있습니다 🔥 (CVE-2021-44228/CVE-2021-45046/CVE-2021-45105)

4 min read

네 바로 어제(2021-12-10) Java의 logging package인 log4j2 에서 RCE 0-day 취약점이 공개되었습니다. Service, Application에 로그를 쌓을수만 있다면 어떤 환경에서도 공격 가능성이 존재하고, 리스크가 RCE인 만큼 정말 전 세계가 불타오르고 있네요. (하하 DM도 터져나갑니다. 안볼거에요……)

ZAP RootCA를 API와 Cli-Arguments로 제어하기

2 min read

ZAP에 새로운 Addon이 추가됬습니다. 이 Addon을 이용하면 ZAP의 인증서, 즉 Root CA를 API나 Cli등으로 컨트롤할 수 있도록 기능이 지원됩니다. 이를 활용하면 Daemon 모드로 동작하거나 CI/CD Pipeline 등에서 사용 시 조금 더 쉽게 인증서 처리를 할 수 있게 됩니다.

DOM XSS? 그렇다면 Eval Villain

2 min read

올해 초 Burpsuite에선 DOM Invador라는 도구를 공개했었습니다. 제가 가볍게 리뷰할 때에도 이야기드렸지만 DOM 기반 테스팅에선 굉장히 유용하기 때문에 Burpsuite 사용자는 물론 ZAP 등 다른 도구 사용자도 충분히 관심가지고 테스트 때 열어서 써봐야할 정도의 도구였었죠.

ZAP Browser에서 Extension 영구 적용하기

1 min read

최근 ZAP의 Extension 중 selenium 관련 업데이트가 있었습니다. 무심히 Change 내용을 봤다가 “Support for browser extension” 문구를 보자마자 반가운 마음에 바로 글 작성을 시작헀죠 😎

ZAP 스크립팅으로 빠르게 Fake Response 만들기

~1 min read

Response 변조는 인증 절차나 비즈니스 로직을 우회할 때 자주 사용되는 공격 방법 중 하나입니다. 보통은 proxy로 요청을 잡아 직접 response를 수정하여 continue 하는 형태로 테스트를 진행합니다.

Solving issue the POST scan in zap-cli not work

1 min read

During the test, I found that POST-based scanning(active-scan / quick-scan) was not working in zap-cli 😱 This problem is zap-cli issue, and it has already been reported as an issue below.

ZAP update domains (core and addon)

~1 min read

최근에 ZAP의 업데이트 서버 주소 관련해서 확인할게 있어서 user-groups에 문의를 했었습니다. 덕분에 쉽게 업데이트 주소를 확인 했지만 메모해두면 좋을 내용들이 있어서 정리해서 글로 작성해둡니다.

ZAP 2.11 Review ⚡️

1 min read

최근에 Simon, ZAP 공식 트위터 계정에서 2.11에 대한 릴리즈가 임박했음을 알렸습니다.

ZAP의 fuzz-script를 이용해 Fuzzing 스킬 올리기

3 min read

여러분들은 Fuzzing 많이 하시나요? 웹해킹.. 아니 대다수 보안 테스팅에서 Fuzzing은 많은 시간을 차지 하기도 하고, 반대로 시간을 줄여주기도 합니다. 오늘은 웹 테스팅에서 ZAP을 이용해 Fuzzing할 때 Script를 이용해서 조금 더 나은 테스팅을 하는 방법에 대해 이야기하려고 합니다.

Authentication Spidering in ZAP

3 min read

최근 ZAP의 Auth(Authentication, Authorization) 관련 기능과 세션에 대한 부분을 파헤치고 있습니다. 제가 잘 모르고 사용하지 않았던 기능들인데, 알고나니 지금까지 약간 답답하게 일했던 제가 부끄러워지네요.

Testing Access-Control with ZAP

3 min read

여러분들은 세션에 대한 접근 권한, Authorization에 대한 부분들을 점검하실 때 어떤 형태로 테스트하시나요?

ZAP에 곧 추가될 FileUpload AddOn 살펴보기

1 min read

최근에 ZAP Weekly 버전에 새로운 기능이 추가됬습니다. 바로 FileUpload 라는 AddOn 형태로 추가된 기능인데요, 이 기능은 File upload 관련 취약점을 식별하고 스캐닝할 수 있도록 도와주는 도구입니다.

ZAP Automation GUI

1 min read

최근에 ZAP Automation framework가 0.4 버전으로 업데이트 됬습니다. 사실 제가 0.4 버전을 기다린 것은 아래 내용 때문인데요, StackHawk에서 스트리밍으로 진행한 Automation Framework에 대한 소개 내용 중 ZAP에서 UI로 Automation Framework를 컨트롤하는 장면이 잡혔었고, Simon에게 물어보니 0.4 버전대 기능이라고 합니다.

ZAP OAST 미리 구경하기 (for OOB)

2 min read

ZAP developers에 컨텐츠 하나가 공유되었는데요 바로 OAST에 대한 내용이였습니다. OAST는 이번에 ZAP core team(akshath)에서 신규로 개발중인 AddOn입니다. 기존 zap callback 기능에 burp suite의 collaborator 와 같이 out-of-band를 쉽게 테스트할 수 있도록 지원해주는 AddOn입니다.

ZAP Plug-n-Hack을 이용한 DOM/PostMessage 분석

2 min read

Plug-n-Hack(PnH)

Plug-n-hack, 즉 PnH는 Mozilla 보안팀이 제안한 표준으로 보안 도구와 브라우저간의 상호 작용을 쉽고 유용하게 할 수 있도록 만들어진 방법을 의미합니다.

ZAP Scanning to Swagger Documents

~1 min read

OpenAPI in ZAP

ZAP은 단순히 url 리스트를 import 하는 기능 이외에도 GraphQL endpoint나 OpenAPI를 import 하는 기능을 가지고 있습니다. 여기서 OpenAPI Import를 활용하면 보통 API Spec에 많이 사용되는 SwaggerUI의 doc 데이터를 가지고 Example 코드에 맞게 API 데이터를 로드할 수 있습니다.

Customize request/response panel in ZAP

1 min read

오늘은 ZAP의 소소한 팁 하나를 공유할까 합니다. 보통 Request/Response 탭은 Layout 정도만 변경하고 기본 값을 사용하는 경우가 많은데요 사실 ZAP의 Request/Response 탭은 생각보다 디테일하게 설정이 가능합니다.

ZAP Passive Scan Tags와 Neonmarker 그리고 Highlighter

2 min read

많은 양의 Web URL을 분석하게 되면 눈에 잘 안들어오고, 중요한 부분들을 놓치기 마련인데 highlight 관련 기능들은 조금 더 중요한 포인트에 집중을 할 수 있도록 포인트를 잡아주기 때문에 개인적으로는 잘 활용하는게 분석함에 있어서 큰 도움이 된다고 생각합니다.

ZAP Automation

2 min read

올 초에 처음 열린 ZAPCon 2021에서 ZAP Automation at Scale이란 세션이 있었습니다. 그 때 당시에는 그냥 ZAP Automation Addon을 통해 기존 자동화 작업을 좀 더 쉽게 구성할 수 있다 정도로 받아드렸었는데, 최근에 Scan Policy 관련해서 비슷한 고민을 하다보니 ZAP Automation의 장점이 눈에 보였습니다.

ZAP Token Generation and Analysis 살펴보기

1 min read

ZAP에는 Token Generation and Analysis란 Addon이 있습니다. 사실 이름만 보고 예전부터 설치는 해두었는데 한번도 사용하지 않았던 것 같네요.. 그래서 오늘 한번 사용해보고 정확히 어떤 도구인지, 어떤 용도로 사용할 수 있을지 글로 작성해봅니다.

Options rule configuration in ZAP

1 min read

ZAP에서 옵션쪽 좀 보다가 Rule configuration 이란 부분이 있는데, 제가 아는 일반적인 스캔 룰 설정이라는 달라서 긴가민가한 부분이 있어 내용 정리해둡니다.

ZAP context based scanning

1 min read

ZAP에서의 quickscan이나 spider, active scan 등을 기본적으로 다중 URL을 지원하지 않습니다. 그래서 예전에 아래 포스트와 같은 방법으로 API를 이용한 방법, 그리고 별도의 도구를 만들어서 스캔하는 방법을 사용하곤 했습니다.

How to set ZAP active scan input vector in daemon mode

1 min read

What is ZAP Active Scan Input Vector?

Active Scan Input Vector는 ZAP에서 Active Scan 시 Injection 영역을 의미합니다. 물론 특정 Injection 취약점을 의미하는 건 아니고 점검할 부분이라고 보시는게 더 적합합니다. ZAP의 기본값은 URL + POST로 기본적으로 URI/Param 등에 대해서 테스트를 진행하지만 쿠키나 헤더등에는 테스트를 진행하지 않습니다. (시간이 오래걸려서, 이는 ZAP이 CICD에 많이 들어가기 때문)

Make and change default scan policy in ZAP cli interface

1 min read

ZAP Scan Policy

ZAP은 Passive/Active Scan에 대한 정책을 커스텀하게 관리할 수 있도록 제공하고 있습니다. 이는 단순히 해당 스캔 모듈의 사용 여부 뿐만 아니라 Risk level도 조정할 수 있어 스캐너로 활용하기에도 좋습니다. 그래서인지 DevSecOps를 구축할 때 ZAP은 자주 거론되는 DAST 스캐너이기도 하죠.

ZAP Forced browse 와 Fuzz에서 Sync wordlist 사용하기

3 min read

Forced Browse는 딕셔너리 기반 또는 단순 브루트포스릍 통해서 서비스에서 경로와 페이지를 식별하는 방법입니다. 아주 전통적이지만 Recon 측면에선 아직도 굉장히 중요한 부분이기도 합니다. 그래서 이러한 작업들을 위해서 기존의 dirsearch, dirbuster 등의 도구부터 최근 feroxbuster, gobuster 등 여러가지 기능과 개선을 적용한 새로운 도구들도 끊임없이 나오고 있습니다.

Zest와 ZAP을 이용한 Semi-Automated Security Testing

3 min read

What is Zest script

Zest script는 ZAP에서 제공하는 스크립팅 언어로 ZAP 내부에서의 요청과 처리 등 많은 기능을 JSON 기반의 스크립트화 하고 사용/관리할 수 있는 언어입니다. BurpSuite 등 다른 메뉴얼 테스팅 도구에서는 없는 ZAP만의 강점인 기능이죠.

How to applying IntelliJ theme in ZAP

1 min read

어제 BurpSuite의 Customizer에 대한 글을 썼었습니다. BurpSuite에서 FlatLaf의 IntelliJ Theme를 사용할 수 있도록 지원해주는 확장 기능이였고, 글 말미와 댓글에도 작성했듯이 ZAP 또한 2.10 버전부터 FlatLaf를 사용하고 있기 때문에 구현이 가능할거란 생각이 들었었습니다.

ZAP 2.10 Review ⚡️

3 min read

2020 마지막이 얼마 남지 않은 오늘 드디어 ZAP 2.10.0이 릴리즈 되었습니다. 그동안 dark mode 등을 이유로 weekly 버전을 사용했었는데, 이제는 공식 버전으로 넘어가도 좋을 것 같네요.

Why I Use ZAP

5 min read

Army-Knife for AppSec

Application Security 또는 Pentest, Bugbounty 등 전반적인 Offensive security 관련 일에서 가장 핵심적인 도구는 Burp/ZAP 과 같은 Proxy 도구입니다. 초기에는 Proxy 도구라는 성향이 강했지만, 이제는 Proxy 도구라기 보단 Army-Knife 라고 보는게 더 적합할 것 같습니다.

Make cloud base ZAP Scanning Environment Using github-action

1 min read

Hi hackers and bugbounty hunters :D Today, I talk about building a github-action-based ZAP scanning environment. As you know, there is no time limit for public repo, so you can configure a cloud-based vulnerability scanner for free 😉

How to add custom header in ZAP and zap-cli

3 min read

The zap-cli is a tool that helps make ZAP easy to use on the command line. From simple scanning to CI/CD Pipeline, it’s a tool that’s used everywhere. Unlike other scanners, it does not support custom headers.

Find reflected parameter on ZAP for XSS!

1 min read

올해부터 버그바운티 시 사용하기 좋은 웹 해킹 도구들을 정리하고 있습니다. 그중엔 BurpSuite와 ZAP의 확장 기능 컬렉션도 있고 트윗통해 추천을 받던 중 쓸만한 ZAP 확장 기능을 찾아 글로 간략하게 작성해봅니다.

How to import external spidering output to Burpsuite or ZAP

1 min read

Normally, BurpSuite or ZAP is the main tool of testing during bugbounty or security testing. It’s good to navigate directly with the spider function in there, but sometimes you need help from an external crawler. (especially when using a waybackmachine) 평소에 버그바운티나 테스팅 시 BurpSuite에서 주로 테스팅을 진행합니다. Burp에서의 spider 기능과 직접 돌아다니는게 좋긴하지만, 때론 외부 크롤러의 도움이 필요할때가 있습니다. (특히 waybackmachine을 사용할땐요)

Using the Flat Darcula theme(dark mode) in ZAP!!

~1 min read

트위터를 보던 중 사이먼의 어마어마한 트윗을 보게되었습니다. 바로 ZAP의 Dark 모드 지원에 대한 이야기였는데요. 가볍게 리트윗했더니 이미 commit 된 내용이고 바로 사용해 볼 수 있다고 합니다. 그래서 아직 Weekly 버전에도 반영되지 않았지만, 미리 체험해보기로 하겠습니다.

HTTP Request(ZAP, Burp) Parsing on Ruby code

1 min read

XSpear 관련해서 이런 건의사항이 하나 있었습니다. Burp, ZAP 등에서 사용하는 패킷 데이터를 파일로 저장한 후 옵션을 주어 읽으면 자동으로 URL, Header 등을 파싱해서 사용하는 형태를 말씀하신 것 같습니다.(마치 sqlmap의 그것 처럼)

Run other application in ZAP 🎯

2 min read

ZAP has one interesting feature. It is a function that can use external applications. This makes it easier and more powerful for security testing to work with external tools. Today’s post is how to use the Apply bridge(?) in ZAP.

ZAP에서 Request/Respsponse 깔끔하게 보기

~1 min read

Problem

ZAP에서 Burp의 Repeater와 비슷한 역할을 하는 도구가 Requester라는 확장기능입니다. (내장 기능도 있지만 여러모로 부족하죠.)

ZAP 2.8 Review ⚡️

1 min read

드디어, 정말 드디어 ZAP 2.8이 릴리즈 되었습니다.

How to fuzzing with regex on ZAP Fuzzer

1 min read

ZAP Fuzzer is a very useful tool for reply attack, brute force, and multiple entropy calculations. Personally, I think it’s better than the burp suite intruder (it’s more flexible).

ZAP에서 정규표현식을 이용하여 웹 퍼징하기

1 min read

ZAP의 Fuzzer는 reply attack, brute force 및 여러 엔트로피 계산에 있어 굉장히 유용한 도구입니다. 개인적으로는 Burp suite의 intruder보다 더 유연하다고 생각되네요. ZAP Fuzzer에서 Regex을 이용해서 페이로드 리스트를 만들고 테스트할 수 있는데, 오늘은 그 이야기를 좀 해볼까 합니다. 시작하죠.

ZAP(Zed Attack Proxy)의 4가지 모드(Four modes of ZAP)

~1 min read

ZAP을 처음 썼을 때 딱 바로 궁금했던게 있었습니다. 바로 좌측 상단의 Mode들인데요, 찾아볼까 하다가 그냥 넘어갔었는데, 드디어… 대충 어떤건지 글로 작성해봅니다.

MacOS에서 Proxy 설정하기(for ZAP, BurpSuite)

~1 min read

MacOS에서 프록시 설정하는 방법 메모해둘까 합니다. 사실 뭐 별다른건 아니고.. 다른 OS에서 직접 설정하는 것과 동일합니다. 다만 MacOS의 경우 좀 더 On/Off가 쉬운 편이라 별도의 프로그램이 필요하단 느낌을 받진 않았네요.

느린 ZAP을 빠르게 만들자! Zed Attack Proxy 최적화하기

~1 min read

취약점 분석에서 필수적으로 사용되는 도구 중 하나인 ZAP(or Burp 이지만, 이번 포스팅에선 ZAP만 다룹니다)은 많은 기능을 가지고 있지만, 모든 기능을 한번에 사용하기에는 확실히 속도를 걱정하지 않을 수가 없습니다.

OWASP ZAP의 New interface! ZAP HUD 🥽

1 min read

예전에 ZAP쪽 트윗보고 트위터로 공유해두었던게 있었는데, 최근 @Dakkar Key의 멘션으로 급 생각나서 글로 정리해둡니다. 그땐 정말 많이 대충 봐서 확하게 뭔지 몰랐었는데, 찾아보니 생각보다 좋은 도구인 것 같네요.

ZAP Scripting으로 Custom Header

~1 min read

ZAProxy에서 replacer를 이용해 Request/Response 내용 중 일부를 자동으로 변경할 수 있습니다. 물론 추가도 가능하구요.그치만 우리는 때때로 조금 더 디테일한 변경이 요구되기도 합니다. 이때는 script로 넣어두고 쓰면 편리하니 공유드립니다.

리눅스에서 OWASP ZAP과 BurpSuite의 색상 바꾸기

2 min read

아주 예전부터 Burp suite, ZAP의 색상을 바꿀 수 있으면 좋겠다는 생각을 했었습니다. 관련해서 양쪽 개발자분꼐 여쭤봤지만 동일하게 코드 수정을 매우 어렵다고 답변 들었습니다. (당연한 이야기…, 역시 자바란)

ZAP에서 Passive Script 만들기

1 min read

요즘 몇가지 만들어쓰고 있는데, 간단하게 틀이되는 코드와 대략적인 설명으로 글 작성합니다.

ZAP에 필요한 기능과 Burp suite 듀얼 체제로 느낀점

2 min read

최근에 ZAProxy 관련글을 쭉 작성하고 있습니다. Burp + ZAProxy 구성으로 진단하는 것에 대해 테스트해보고 적응하는 단계였는데, 한 1~2주 지났을까요? 전보다 확실히 익숙해진 것 같습니다. 이젠 단독으로 ZAProxy 써도 크게 불편하진 않을 것 같네요. 오늘은 관련 글의 마지막 부분으로 앞으로 적용해야할 것들에 대한 이야기를 하려합니다.

ZAP 단축키 사용 팁

1 min read

시간도 늦고 피곤해서 잘까하다가, 재빠르게 글 하나 쓰고 자려합니다.

ZAP Scripting으로 Code Generator 구현하기

2 min read

ZAProxy와 Burp를 혼용해 쓰면서 불편한 점들을 찾고, 고쳐가고 있습니다. 오늘은 그 중 Code genertor에 대한 이야기를 할까 합니다.

Burp suite 중독자가 바라본 OWASP ZAP(Zed Attack Proxy). 이제부터 듀얼이다!

3 min read

요즘 부쩍 툴에 대한 많은 깊은 고민이 생겼습니다. 어떤 툴을 쓰면 좋을지, 이참에 걍 하나 만들지… 한… 3년? 전쯤에도 같은 고민이 있었죠. 그때는 Burp suite에 올인하기로 마음을 잡았었습니다. 시간이 지난 요즘, 또다시 Burp suite에 대한 지겨움, 새로움을 갈구하는 마음에 여러 고민이 시작되었습니다.

Back to Top ↑

ruby

Crystal-Lang is ❤️

2 min read

저는 최근에 Crystal-lang을 즐기고 있습니다. 간단한 토이 프로젝트부터 Noir란 사이즈가 점점 커지고 있는 프로젝트까지 Crystal을 통해 구현하고 있습니다. 오늘은 제가 Crystal을 좋아하게된 이유에 대해 이야기하려고 합니다.

Homebrew로 패키지 제공하기 🍺

2 min read

제가 만든 도구는 대부분 Homebrew, Binary, RubyGem, Snapcraft 등을 통해 배포합니다. 특히 macOS의 경우 Homebrew를 통한 설치 비중이 엄청 높기 떄문에 Go 기반 앱들은 가급적이면 Homebrew를 지원하려고 하고 있습니다. 그리고 이러한 대부분의 작업은 Goreleaser란 도구를 통해서 진행하기 때문에 매우 편리하게 진행했었죠.

Broken link를 찾자! DeadFinder

1 min read

최근에 Broken Link(Dead Link)를 쉽게 찾기 위한 도구를 하나 만들었습니다. 제 블로그의 Broken Link를 찾기 위한 목적이였지만, 가볍게라도 한번 공유하는게 좋을 것 같아서 블로그 글로 작성해봅니다.

Rake(Ruby Make)

2 min read

Rake는 Ruby에서 사용되는 build utility로 Make유사합니다. rake란 이름 또한 ruby + make 에서 만들어진 단어로 일반적인 Ruby application과 Rails 등 여러가지 환경에서 개발 도구로써 사용됩니다.

Ruby Concurrency

2 min read

매번 어플리케이션을 만들 때면 동시성에 대한 고민을 하지 않을 수가 없습니다. 기능적인 구현에 직접 필요한 경우도 있고 퍼포먼스를 결정 지을 수 있는 요소이기 때문에 중요하다고 생각합니다.

Hugo에서 Sitemap-index 사용하기(split sitemap)

3 min read

sitemap.xml

sitemap.xml은 Sitemap protocol을 위한 XML schema로 웹 서비스가 포함하고 있는 링크들을 사용자에게 제공하기 위한 목적으로 구성되는 파일입니다. 아래와 같은 구조를 가지며, 사용자나 검색 봇 등은 이 파일을 참조하여 웹 페이지를 수집합니다.

Jekyll에서 Hugo로 이사가기 (Migration log)

7 min read

jekyll… 제가 예전에는 rubyist(ruby 사용자) 였습니다. 그러다가 2018~19년 쯤에 gopher(golang 사용자)가 되었고 이후부턴 만들고 있는 대다수의 도구는 golang 기반으로 만듭니다.

Ruby와 Google Indexing API를 이용하여 자동으로 신규URL 등록하기

4 min read

제가 블로그 글을 작성하고 commit - push 시 많은 작업들이 일어납니다. 대표적인 것들을 이야기 드리면, Jekyll build 및 deploy 과정이 진행되고 이미지 중 compress가 필요한 이미지는 compress 처리하여 용량을 줄이고, notify 등 여러가지 과정들이 github action에 녹아있습니다.

rvm is not a function 에러 해결하기

~1 min read

Problem

저는 보통 글을 작성할 떄 맥북에서 진행합니다. 그래서 홈 서버에서는 직접 글을 작성할 일이 별로 없었는데, 디자인 좀 수정하기 위해서 서버에서 직접 작업하다 보니 jekyll serve 시 ruby 버전 관련 에러가 있었습니다. 요약하면 github pages gem은 2.x 버전만 지원하는데, 시스템 버전이 3.x 버전이라서 발생한 문제였고, 이를 rvm로 처리하고자 rvm use를 사용했더니 아래와 같은 에러가 발생했엇습니다.

Rails generate 시 멈추는 경우 해결 방법

~1 min read

제가 2019년부터 go를 메인언어로 확정하면서 ruby로 개발할 일이 매우 줄어들었습니다. 그래도 가끔씩 빠르게 작업이 필요한 경우 ruby를 의도하지 않게 사용하는데, 간혹 rails g, rails generate 시 멈추는 상황이 있습니다. 그럼 원인과 해결 방법에 대해 글 작성해봅니다 :D

Jekyll feed.xml 최소화하기

2 min read

RSS는 매우 오래된 기술이지만, 아직까지도 많은 웹 서비스에서 지원하고 사용되는 기술입니다. 일반 사용자가 리더를 통해 쉽게 글 목록을 받아서 읽을 수 있고, SEO 관점에서도 상당히 중요한 부분입니다.

Check logic vulnerability point using GET/HEAD in Ruby on Rails

3 min read

최근에 Github OAuth flow bypass 취약점이 공개되었습니다. 이 취약점은 Rails 앱의 특성을 이용한 취약점이고, Github만의 문제가 아니고 패치로 모든 Rails 앱을 보호할 수도 없습니다. Today, I going to review one vulnerability that needs to be checked in the Rails App environment through the Github OAuth flow bypass vulnerability. (B recently shared something interesting to me.)

Rails에서 HTTP Basic Auth 적용하기

~1 min read

HTTP Basic Auth는 HTTP에서 기본적으로 사용되는 인증 방식입니다. ID/PW를 Base64로 인코딩해서 Auth 헤더에 넣어 서버가 신뢰된 사용자인지 검증하는 방식으로 동작합니다.

HTTP Request(ZAP, Burp) Parsing on Ruby code

1 min read

XSpear 관련해서 이런 건의사항이 하나 있었습니다. Burp, ZAP 등에서 사용하는 패킷 데이터를 파일로 저장한 후 옵션을 주어 읽으면 자동으로 URL, Header 등을 파싱해서 사용하는 형태를 말씀하신 것 같습니다.(마치 sqlmap의 그것 처럼)

Ruby on Rails Double-Tap 취약점(CVE-2019-5418, CVE-2019-5420)

4 min read

간만에 취약점 리뷰해봅니다. 올 봄에 정리한번하고 최근에 추가로 정리했던거라 머리속에서 날아가기 전에 블로그 글로 남겨보아요. 우선 올 해 3월 정도에 레일즈 관련 취약점이 3개정도 올라왔었습니다. CVE-2019-5418 ~ 5420 이슈인데, 결과적으론 Rails에서 시스템 파일을 읽고, 명령 실행까지 가능한 3가지였습니다.

How to resolve duplicate mail transmission in Rails ActionMailer(중복 메일 전송 해결 방법)

~1 min read

Rails에서 ActionMailer를 이용하면 쉽게 메일 송/수신 로직을 처리할 수 있습니다. 그래서 ActionMailer로 여러가지 구성해서 사용하고 있는데, 특정 어플리케이션에서 메일이 중복으로 발송되는 이슈가 있었는데요, 찾아보니 정확한 이유는 모르겠지만 자체적인 버그로 보입니다. (중복 콜이 일어나는 것 같은데…)

Rails crono를 이용하여 스케줄링하기(Scheduling with crono on Rails)

2 min read

보통 유닉스 기반 PC에선 스케줄링을 위해 crontab 또는 at를 사용하고, 윈도우에선 서비스에 등록하는식으로 사용합니다. 이를 위해선 시스템에서 crontab 같은 도구 사용이 가능해야하며, PaaS 이상의 추상화가 이루어진 플랫폼에선 사용하기 어려운 경우가 대다수입니다.

[ Rails on Heroku ] 간단한 루비 레일즈 앱 구성 및 Heroku에 배포하기

2 min read


[ Rails on Heroku ] 자주 사용하는 heroku 명령어 정리 (https://www.hahwul.com/2019/04/what-is-heroku.html) [ Rails on Heroku ] 간단한 루비 레일즈 앱 구성 및 Heroku에 배포하기 (https://www.hahwul.com/2019/04/ruby-on-rails-distribute-heroku.html) [ Rails on Heroku ] Heroku란? 빠르게 환경 구성하기 (https://www.hahwul.com/2019/04/favorite-command-heroku.html)

Ruby gem 만들기(Make ruby gem)

1 min read

요즘 좀 정신없이 지내다보니 벌써 10월이네요.. 써놓은 글도 마침 없는 상태인지라 이번에도 간략한 글 작성할까 합니다. (아 10월의 첫글이 메모글이라니…) 많은 ruby application 들이 단순히 코드를 clone 해서 쓰는 형태보단 gem으로 패키징하여 배포하고 사용하는 형태를 가집니다.

Crystal - Ruby와 비슷하며 빠른 프로그래밍 언어

2 min read

올 초쯤에 Crystal이란 언어에 대해 잠깐 이야기들은적이 있습니다. Ruby 문법과 유사하다는 것만 듣고 드디어 조금 더 살펴봤네요. 아직 정식 릴리즈도 아닌 상태이니 어떤 언어인지 정도만 정리해둘까 합니다.

Ruby Style Guide와 Rubocop

1 min read

오늘은 루비 개발 관련해서 좋은 가이드가 있어 공유드릴까 합니다. 정말 정리가 잘 되어있습니다. 천천히 내용 읽어보면서 고쳐야할 습관들이 많이 보이네요.

Ruby에서 Exception 처리( begin-rescue-else-ensure-end )

~1 min read

벌써 7월이네요.. 오늘은 매번 코드 작성할때마다 귀찮지만, 뺴먹을 수 없는 중요한 친구에 Exception, 즉 예외처리에 이야기할까 합니다. 거의 정리 차원에서 간단하게 쓰는거니 빠르게 시작하죠.

ZAP Scripting으로 Code Generator 구현하기

2 min read

ZAProxy와 Burp를 혼용해 쓰면서 불편한 점들을 찾고, 고쳐가고 있습니다. 오늘은 그 중 Code genertor에 대한 이야기를 할까 합니다.

JRuby로 Ruby와 Java 동시에 사용하기

1 min read

개인적으로 BurpSuite의 Extender를 만들 때 Java를 사용했습니다. 당연히 Burp가 Java base이고, API 등의 사용성 때문에 Java로 개발하는 것이 일반적인데요, 오늘은 Jruby를 이용하여 Ruby와 Java를 혼용하여 사용하는 방법에 대해 이야기하려고 합니다.

Rails의 라우팅과 constraints를 이용하여 IP기반 ACL 만들기

2 min read

Rails Application에서 접근제어를 하는 방법은 여러가지가 있습니다. 예전에 포스팅하기도 헀고, 튜토리얼에서도 기본적으로 이야기되는 HTTP Auth를 이용한 인증방식 부터 세션, 로그인 기반 인증까지 여러가지 형태로 구현이 가능하죠. 오늘은 가장 기본적인 접근제어인 IP 기반 ACL에 대한 이야기를 할까 합니다.

Rails development 환경에서 error 정보 줄이기

~1 min read

rails application은 기본적으로 application 실행 시 development, test, production와 같이 실행 환경을 지정할 수 있습니다. 각각 실행 환경별로 디버그, 에러 처리 여부 등 환경과 처리 방식에 대해 결정할 수 있습니다.

Vim에서의 개발을 위한 최소한의 plugin 설정

1 min read

매번 느끼지만 글로 작성하지 않은 내용들은 나중에 다시 세팅하거나, 참고해야할 때 참 불편합니다. 꼭 필요할 때 보면 없다죠. 최근에도 vim 세팅을 다시 할일이 있어 하나하나 세팅하고 있는데, 한번쯤은 메모해두면 두고두고 볼 것 같다라는 생각이 들었습니다. 짧게나마 시간 내어서 글 작성해봅니다.

Rails에서 DB Column 추가하기

~1 min read

rails는 database schema 등을 migration 파일로 관리합니다. 이를 이용하면 이미 만들어진 앱에서 DB Schema를 변경하거나 쉽게 Rollback할 수 있습니다.

RUBY에서 RQRCode를 이용하여 QR코드 생성하기

~1 min read

오늘은 RQRCode에 대해 작성할까 합니다. RQRCode는 Ruby에서 QR코드를 다룰 수 있는 라이브러리입니다. 간단한 코드로 쉽게 QR코드 생성이 가능하기 떄문에 QR코드 관련 서비스나 Rails 내 QR 코드 사용 등 여러가지 방면으로 활용할 수 있겠네요.

[RUBY] Cuntom column sort function on Two-dimensional array

1 min read

루비로 코딩하던 중 귀찮은 일이 있었습니다. 바로 array에 대한 정렬 중 2차원 이상 배열에서는 제가 지정한 열을 기준으로 정렬할 수 있는 함수가 없던것입니다..

Ruby nokogiri를 이용한 Web Spider 만들기

3 min read

지난 포스팅에선 nokogiri를 이용한 parsing 을 했다면 이번에는 조금 더 발전 시켜서 간단한 Spider를 만들어볼까 합니다. 물론 훨씬 좋은 라이브러리들이 있지만 가장 기본이되는 nokogiri를 잘 안다면 많은 도움이 있을 수 있겠지요.

Ruby Nokogiri를 이용한 Web Parsing

2 min read

웹 서비스를 탐색하는 도구들을 만들다 보면 많이 접하게 되는 작업이 하나 있습니다. 바로 HTML, XML 등 구조화된 문서를 파싱하는 작업인데요. 오늘은 Ruby의 강력한 파싱 라이브러리인 Nokogiri에 대해 이야기할가 합니다.

[RUBY] 루비에서 Process/command 실행하기(Execute Process and command)

2 min read

C언어부터 ruby, python 등등 여러가지 언어 중 하나라도 해보셨다면 정말 반가운 함수가 있습니다. 바로 system() 함수(C언어 기준)인데요, 이 함수를 통해 시스템에 명령을 내리거나 새로운 프로세스를 생성할 수 있는 함수이지요. 이 함수로 많은 노가다 작업이 줄게되지요.

Ruby WEBrick에서 서버 사이드 코드 처리하기

1 min read

WEBRick 또한 웹 서비스를 위한 라이브러리이기 때문에 간단한 라우팅 기능을 지원합니다. 이를 이용하면 Static 파일만 서빙하는게 아닌 실제 웹 요청 시 원하는 코드를 동작시킬 수 있습니다.

rvm, rbenv를 통한 Ruby 버전 관리

~1 min read

오랜만에 노트북에서 Metasploit 업데이트를 하였더니 패키지 하나가 의존성 문제가 걸렸습니다. gem 으로 설치하려 했으나, 발생하는 건 ruby 2.1 이상에서 설치 가능하다는 메시지였습니다.

Back to Top ↑

metasploit

MSF Pivoting X SocksProxy

2 min read

최근에 MSF로 Pivoting 환경에서 테스팅이 필요한 경우가 있었습니다. 방법 자체는 어려운게 아니라 그냥 몸에 있는대로 진행하긴 했는데, 생각해보니 블로그에 정리했던 적은 없는 것 같아 간단하게 남겨봅니다.

Metasploit에서 HTTP Debug 하기

1 min read

MSF를 사용하다 보면 실제로 공격 페이로드가 잘 전송되었는지 확인하고 싶을 때가 있습니다. 또 모듈을 이용해서 테스트했지만 개발자 등이 이해하기 쉽게 HTTP 요청으로 보여줘야할 때도 종종 생깁니다.

Metasploit 데이터를 Httpx로?

3 min read

오랜만에 Metasploit 관련 글을 쓰는 것 같습니다. 다름이 아니라 netpen이라는 plugin을 하나 찾았는데, 이를 이용하면 Metasploit으로 수집한 정보를 가지고 nuclei나 zap/burp 등 다른 도구와 파이프 라인으로 구성해서 사용하기 좋아보였습니다.

Metasploit에서 Database connection이 자주 끊긴다면?

1 min read

간혹 Metasploit을 사용하고 있으면 갑자기 DB Connection이 사라지곤합니다. 제 환경에서도 특정 PC에서 유독 잘 끊어지는데요, 간단한 트릭으로 쉽게 해결이 가능합니다.

Write Metasploit Module in Golang

2 min read

Metaploit에서 2018년 12월부터 golang module 지원이 시작되었습니다. 저도 잘 모르고 있다가 최근에서야 알게 되었네요.

Metasploit-framework install & Setting on MacOS

~1 min read

macos에서 Metasploit-framework 설치하는 방법에 대해 메모합니다. 음 솔직히 리눅스 버전이랑 거의 동일한 것 같은데, 최근 버전이라 그런가 path나 db 설정도 자동으로 해주네요.. (오.. 소스코드 받아서 하다가 패키지로 바꾸니깐 신세계)

Metasploit-framework 5.0 Review

2 min read

지난 목요일 Rapid7 블로그에 글이 하나 올라왔습니다. 바로 msf 5.0 즉 major 버전 업데이트에 대한 이야기입니다. 큰 업데이트인만큼 어떤점들이 바뀌는지 살펴보도록 하죠.

Android Meterpreter shell 에서의 실행 권한 상승 삽질 이야기

2 min read

저는 대체로 테스트폰에 작업할 때 meterpreter shell을 연결해놓고 사용합니다. 뭐랄까 ssh는 굳이 열어두고 싶진 않고 adb는 케이블 건드려서 끊길때 마다 불편해서 그냥 exploit app 하나 내려놓고 필요할때마다 실행하죠.

Shodan API와 Metasploit을 이용한 Exploiting script - AutoSploit

1 min read

원래 LanGhost 내용으로 글 써볼까 헀다가, 급 주제를 바꾸어 툴 하나에 대해 이야기하도록 하죠. 오늘은 이번주에 나름 핫했던 AutoSploit입니다.

What is AutoSploit?

AutoSploit은 원격 호스트에 대한 자동 서칭, Exploit 툴, 스크립트 정도로 생각하시면 좋을 것 같습니다. 파이썬 기반의 코드이며 Shodan을 이용해서 임의의 대상을 선정하고, Metasploit 모듈로 Exploiting 합니다. 자동을 대상을 선정하고, 공격하고, 권한을 획득할 수 있다는 점에서 조금 리스크한 툴로 보입니다만, 이미 350명이 넘는 사람이 fork 중이네요.

가상 Pentest 환경 구성을 위한 metasploitable2 설치

4 min read

가상 환경에서의 Pentest 어떻게 생각하시나요? 분명 실제 상황과 느낌도 다르고 불안한감도 없어 장난감 같은 느낌이 들겁니다. 사람이 미리 취약하게 만들어둔 시스템을 공격하는게 무슨 의미가 있는가 라는 질문도 받습니다.

Metasploit ipknock를 이용한 hidden meterpreter shell

6 min read

metasploit에서 payload에 대해 찾아보던 중 ipknock에 대한 내용을 보게되었습니다. 찾아보니 오래전부터 있던 기능이였는데, 잘 활용하면 재미있는 놀거리가 되겠더군요.

Metasploit 의 rhosts에서 Column/Tagging 커스터마이징 하기

3 min read

Metasploit에서 hosts 명령은 아주 중요한 명령입니다. 타겟에 대한 관리부터, exploit 시 좀 더 편하게 타겟을 RHOSTS에 넣을 수 있어 많이들 사용하시고, 앞으로도 쭉 사용할 수 밖에 없는 기능이죠.

Metasploit API와 msfrpcd, 그리고 NodeJS

5 min read

요즘 metasploit의 rpc에 대해 굉장히 관심이 많습니다. 대표적으론 msgrpc plugin 부터 msfrpcd 데몬까지 metasploit에서 rpc를 이용할 수 있는 방법들을 많이 찾아보고 있지요.

Metasploit-Aggregator를 이용한 Meterpreter session 관리하기

4 min read

Metasploit과 Meterpreter는 굉장히 좋은 툴지만 간간히 불편한점도 존재합니다. 대표적으론 여러 사용자가 세션에 대해 공유할 수 없다는 점과 공격자의 Metasploit에 모든 세션을 담기에는 너무 많아지면 불편해지겠죠. 오늘은 이를 해결할 수 있는 Aggregator에 대한 이야기를 할까 합니다.

Automatic Exploit&Vulnerability Attack Using db_autopwn.rb

~1 min read

예전에 Metasploit에는 db_autopwn이라는 plugin이 있었습니다. 다수의 시스템을 테스트하고 공격을 수행해야하는 사람 입장에서 아주 유용할 수 있는 plugin이지만 문제가 있어 공식 버전에서 제외된 plugin이죠. 전설처럼 내려오는 db_autopwn 코드를 통해 따로 plugin으로 넣어준다면 지금도 충분히 사용 가능합니다.

Data Leak Scenario on Meterpreter using ADS

3 min read

Meterpreter를 가지고 놀던 중 재미있는 사실을 하나 발견했습니다. 뭐 크게 놀라운건 아니지만 meterpreter 에서도 아래 명령이 먹힐줄은 몰랐네요.

Privilege Escalation on Meterpreter

4 min read

Meterpreter shell에서 권한상승은 어렵지 않습니다. getsystem 명령 하나면 충분하죠. 그럼 약간 궁금증이 생기게 됩니다.

[MAD-METASPLOIT] 0x30 - Meterpreter?

1 min read

What is Meterpreter shell?

Metasploit에서 여러 기능을 제공하는 쉘이자 Anti forensic을 위한 shell이라고 볼 수 있습니다. 개인적으로 굉장히 좋아하는 쉘이며 Ruby script(IRB)의 연동으로 현재 주 언어를 Ruby로 쓰고있는 저에게는 최고의 쉘이 아닐까 싶습니다.

Meterpreter를 이용한 Windows7 UAC 우회하기

3 min read

Windows system을 침투테스트하다 보면 UAC라는 게정 컨트롤을 만나게 됩니다. 아래에서도 설명드리겠지만 이는 Windows 의 보안 정책 중 하나이며 우리는 이것을 우회해야 더 깊은 내용으로 접근하고 실행할 수 있습니다. 오늘은 Metasploit을 통해 UAC를 우회하는 방법에 대해 이야기할까 합니다.

[MAD-METASPLOIT] 0x40 - Anti Forensic

2 min read

Remove event log meterpreter > clearev [] Wiping 766 records from Application… [] Wiping 1375 records from System… [*] Wiping 346 records from Security…

[MAD-METASPLOIT] 0x34 - Persistence Backdoor

1 min read

Persistence backdoor

Meterpreter는 Persistence 를 이용하여 시스템에 백도어를 남겨 지속적으로 접근할 수 있는 통로를 만들 수 있습니다.

[MAD-METASPLOIT] 0x20 - Remote Exploit

3 min read

HAHWUL auxiliary(vnc_login) > db_nmap -PN 192.168.56.101 [] Nmap: Starting Nmap 7.01 ( https://nmap.org ) at 2017-08-07 15:17 KST [] Nmap: Nmap scan report for 192.168.56.101 [] Nmap: Host is up (0.00072s latency). [] Nmap: Not shown: 983 closed ports [] Nmap: PORT STATE SERVICE [] Nmap: 80/tcp open http [] Nmap: 135/tcp open msrpc [] Nmap: 139/tcp open netbios-ssn [] Nmap: 443/tcp open https [] Nmap: 445/tcp open microsoft-ds [] Nmap: 554/tcp open rtsp [] Nmap: 2869/tcp open icslap [] Nmap: 5357/tcp open wsdapi [] Nmap: 5500/tcp open hotline [] Nmap: 5800/tcp open vnc-http [] Nmap: 5900/tcp open vnc ..snip..

[MAD-METASPLOIT] 0x10 - Port scanning

3 min read

nmap scan

Metasploit Database 사용 하도록 설정하였다면 Msf 내부에서 DB와 연결되는 nmap을 사용할 수 있습니다. nmap에 대한 결과가 Metasploit DB로 들어가 연동되기 때문에 후에 스캔 데이터를 가공하는데 있어 굉장히 편리합니다.

[MAD-METASPLOIT] 0x02 - Database setting and workspace

~1 min read

DB 연동을 하게되면 취약점 정보를 DB에 인덱싱하여 조금 더 빠른 검색을 사용할 수 있고 DB를 통해 taget에 대해서 효율적으로 관리할 수 있어 Metasploit을 사용하는데 있어 굉장히 중요한 요소입니다.

[METASPLOIT] DB 연동 이후 발생하는 Module database cache not built yet(slow search) 해결하기

1 min read

Metaploit을 사용하다 보면 Module DB cache로 인해 검색이 느린 경우가 있습니다. 대체로 Metasploit에서 DB 연결을 안할때 발생할 수 있지만 DB 연결이 되어있어도 발생할 수 있는 경우가 있습니다. DB를 연동하지 않은 분들은 아래 링크 참고하셔 연동하시면 말끔하게 사라집니다.(연동하면 장점이 훨씬 많아요)

[METASPLOIT] Writing Custom Plugin for metasploit

3 min read

최근에 a2sv를 metasploit plugin으로 지원할 생각을 하고있습니다. 모듈 제작이 아닌 plugin 제작으론 경험이 거의 없기에.. 하나하나 찾아보면서 진행하기로 했죠.

Metasploit resource script와 ruby code로 커스터마이징 하기

4 min read

예전부터 저는 Metasploit을 Custom 해서 사용하고 있었습니다. 그리고 올 초 msf의 업데이트로 파일 시스템의 구조가 바뀌면서 Custom 코드가 좀 꼬이게 되었습니다. 그래서 다시 Custom 과정을 거치던 중 재미있는 아이디어가 생각나서 포스팅 작성해봅니다.

[METASPLOIT] msfconsole 내 Prompt 설정하기

~1 min read

msf 사용 중 간단한 편의 기능에 대한 이야기를 할까합니다. 바로 Prompt 부분에 대해 설정하는 방법인데요. 초기 저는 이 방법이 있을거란 생각도 안하고 코드에서 직접 바꿔서 썼었던 기억이 나네요. (물론 그것도 나름의 장점이!)

[METASPLOIT] Hardware pentest using metasploit - Hardware-Bridge

3 min read

최근 Rapid7사에서 재미있는 내용을 발표했었습니다. 바로 Metasploit Framework의 Hardware-Bridge 기능입니다. 이로써 Metasploit은 소프트웨어와 하드웨어 모두 공격이 가능한 프레임워크가 되었네요.

Paranoid Mode! SSL Certified Meterpreter shell

3 min read

지속적인 모의해킹은 인프라, 서비스의 보안성을 향상 시키는데 큰 도움이 됩니다. 다만 뒷처리가 깔끔하지 않다면 더 취약해질 수도 있다는 문제점을 가지고 있죠.

MSF의 local_exploit_suggester 모듈을 이용한 Local Exploit 찾기

2 min read

Metasploit을 통해 대상 시스템에 침투했을 경우 우리는 권한 상승을 위해 Local 취약점을 찾기 위해 노력할 것입니다. 물론 취약한 어플리케이션이 눈에 잘 띄지는 않지만요. Meterpreter Shell에서 사용가능한 모듈 중 이러한 과정을 자동화해준 모듈이 있습니다. 바로 local_exploit_suggester 인데요, 오늘은 이 모듈에 대해 이야기 할까 합니다.

[METASPLOIT] Metasploit Custom Scanner 만들기(Make Simple Scan Module)

1 min read

offensive-security 에서 뭐 볼게 있다 뒤적뒤적하던 중 Metasploit Unleashed 에서 간단한 Scan Moudle 코드를 보았습니다. 물론 msf 자체가 ruby로 구성되어 있어 ruby를 쓰시는 분들은 쉽게 제작할 수 있지만, 일단 샘플코드가 있다면 다른 코드로 확장하기 굉장히 유용하기 때문에 따로 포스팅할까 합니다.

[METASPLOIT] Veil Framework(Payload Generator)를 이용한 Antivirus 우회하기

1 min read

Payload Generator 를 찾던 중 재미있는 툴을 발견하였습니다. 바로 Veil이라는 툴인데요, MSF에서 사용하는 Meterpreter Shell에 대해 Antivirus를 우회하기 위해 인코딩할 수 있는 툴입니다. 로고도 양과 늑대의 그림자이네요. (뭔가 양의 탈을 쓴 늑대랄까요)

[METASPLOIT] Metasploit의 AutoRunScript를 이용한 침투 후 자동 환경 구성

1 min read

Metasploit 에선 AutoRunScript 라는 재미있는 기능을 지원합니다. 이 기능은 사용자가 미리 .rc 파일을 생성하여 동작할 모듈을 지정해놓고 Exploit 시 자동으로 등록한 동작을 수행하도록 할 수 있습니다. 이런 기능을 통해 공격자가 침투 후 수행해야할 부분에 대해 어느정도 시간 단축이 가능합니다.

MSFVENOM을 이용한 Android 침투 및 Meterpreter Shell 사용

2 min read

metasploit 은 공격을 위한 도구 중 정말 유용하고 Custom 하기에도 좋은 툴입니다. 대체로 linux, unix, windows 시스템에 대해 테스트를 하고 shell 을 삽입 했었는데, Android 에서 작동하는 Meterpreter shell 은 어떨까? 라는 생각이 들어 해보았습니다.

MSFVENOM을 이용하여 Application에 Exploit Code 주입하기

1 min read

MSFVENOM

metasploit 에 포함된 기능 중 하나이며 간단한 명령으로 exploit 코드 생성, exploit이 포함된 프로그램 생성, 기존에 존재하는 프로그램에 주입하는 등 여러가지 행위가 가능합니다. msfpayload, msfencoder 로도 가능하지만 개인적으로는 venom 이 가장 편한 것 같습니다.

Back to Top ↑

cullinan

[Cullinan #41] GraphQL, Rails and Jekyll

~1 min read

Cullinan 로그 #41입니다. 약 두달만에 올리는 내용 치고는 변경 사항이 많지는 않았습니다. 4개의 신규 항목 추가가 있었고, smuggling 등 일부 내용을 추가 보강했습니다.

[Cullinan #40] How to Hack a X Series

~1 min read

Cullinan 로그 #40입니다. websocket security와 Insecure File Upload 항목이 추가되었고, How to Hack a MacOS Application 항목이 추가되었습니다. 이외에 SSE 내 부족한 부분들 보강하고, NoSQL InjectionXSS 부분 개선이 있었습니다.

[Cullinan #39] SRI and File Inclusion

~1 min read

Cullinan 로그 #39입니다. SRI(Subresource Integrity)와 File Inclusion(LFI/RFI)에 대한 내용이 추가되었습니다. 그리고 수정 사항으론 Prototype Pollution에서 ZAP PassiveScan Script를 추가했고 XSS와 Path traversal 내 여러가지 항목들을 개선했습니다 😊

[Cullinan #35] Github-Action/Email Injection

~1 min read

Cullinan 로그 #35입니다. Github-Action Injection과 Email Injection을 추가하였습니다. 그리고 Path-traversal, XSS, CSRF, ZAP에 일부 내용을 개선하고 추가했습니다.

[Cullinan #34] Add XS-Leaks, Update Git/OAST

~1 min read

Cullinan 로그 #34입니다. XS-Leaks 추가했고 Git과 OAST에 일부 업데이트가 있었습니다. Git에선 go-to payload 항목, 즉 자주 사용하는 명령 리스트를 추가했고 OAST에선 알려진 OAST 서비스의 주소를 정리해서 추가했습니다.

[Cullinan #29] Update 3 Pages

~1 min read

컬리넌 로그 #29입니다. DOM Clobbering, ZAP, Command Injection 내 업데이트가 있었습니다.

[Cullinan #28] Add RPO and SSJI

~1 min read

컬리넌 로그 #28입니다. 이번에는 RPO와 SSJI를 추가했고, 기존 항목들 일부 수정사항이 있었습니다.

[Cullinan #26] Add XXE (XML External Entity)

~1 min read

컬리넌 로그 #26입니다. XXE 항목 추가하였습니다. 보통 컬리넌에 여러개 이력이 누적되면 올리려곤 하는데, 이번에는 텀이 좀 길어져서 로그로 올려봅니다.

[Cullinan #25] 앞으로의 계획

1 min read

컬리넌 로그 #25입니다. 사실 이번에는 업데이트 로그라기 보단 앞으로의 계획을 좀 더 공유드릴까 해서 작성해봅니다.

[Cullinan #24] Add ESI Injection and Update Others

~1 min read

컬리넌 업데이트 로그 #24입니다. ESI Injection을 추가했고, SSTI에 RCE 관련 내용 추가, 그리고 도구 업데이트가 있었습니다. 마지막으로 Cullinan의 메인 페이지 디자인의 일부를 수정(max-width 제거)했습니다.

[Cullinan #20] LDAP Injection, ClickJacking, Cache Poisoning 그리고 개선사항

~1 min read

컬리넌 업데이트 로그 #20입니다. 예전 Jekyll 블로그에서 사용하던 것과 동일하게 Cullinan의 메인 페이지를 구성했고 Slug 부분에 개선을 해서, 제목에 약자 등 일부 내용들이 더 추가되었습니다. 그리고 LDAP Injection, ClickJacking, Web Cache Poisoning 항목을 추가했습니다 :D

[Cullinan #19] Add SQLi and Cookie Bomb

~1 min read

컬리넌 업데이트 로그 #19입니다. SQL Injection과 Cookie Bomb Attack이 추가됬고, Amass 부분에 수정이 있었습니다. 그리고 이번에 chunked extension 기반의 HTTP Request Smuggling 관련 글을 작성하면서 Cullinan - HTTP Requset Smuggling 부분에도 해당 내용을 추가하였습니다.

Cullinan 18 XST and DOM Clobbering

~1 min read

컬리넌 업데이트 로그 #18입니다. XST(Cross-Site Tracing)과 DOM Clobbering 항목을 추가했습니다.

[Cullinan #16] ZIP-Slip and HPP

~1 min read

컬리넌 업데이트 로그 #16입니다. ZIP Slip과 HTTP Parameter Pollution에 대한 내용을 추가했습니다. 그리고 HTTP2 H2C Smuggling의 Tools 부분에 도구 추가로 수정이 있었습니다.

[Cullinan #12] Add JSON/JSONP Hijacking

~1 min read

컬리넌 업데이트 로그 #12입니다. 이번에는 JSON Hijacking, JSONP Hijacking에 대한 내용 추가되었습니다. 그리고 XSS 내용이 없던 부분이 좀 있었는데, 내용 추가하였습니다 :D

[Cullinan #11] Add CSRF and SSRF

~1 min read

오랜만에 cullinan 컨텐츠 업데이트를 진행했습니다. Draft 상태였던 CSRF와 SSRF 내용 추가했고, 다른 항목(스머글링 등)들 중 일부 컨텐츠 수정을 진행했습니다.

[Cullinan #9] Added history of owasp top 10

~1 min read

Change Note

cullinan에 History Of OWASP TOP 10 이란 이름의 페이지를 추가했습니다. 이는 OWASP TOP 10의 변화를 한눈에 보기 위해 만든 페이지로 새로운 년도의 버전이 나올 때 마다 갱신해 나갈 예정입니다.

[Cullinan #6] Add reverse tabnabbing

~1 min read

Reverse Tabnabbing 관련해서 기존에는 phoenix에 테스트용 페이지만 만들어두고 썼었는데 내용 정리좀 할겸 cullinan에 추가했습니다.

[Cullinan #2] Added change log

~1 min read

Cullinan에서 change log를 추가했습니다. 간단한 방식으로 구현했고, 이력 관리차 글로 남겨둡니다.

[Cullinan #1] 컬리넌 프로젝트 소개

1 min read

제가 블로그를 운영하는 가장 큰 이유 중 하나는 개인적인 정리가 목적입니다. 물론 노션이나 다른 도구들로 따로 정리하지만, 기술에 관련된 내용들은 아무래도 블로깅을 통해 정리하는게 익숙하다 보니 긴 시간동안 계속 이렇게 작성하게 되는 것 같습니다.

Back to Top ↑

go

Go dependency(go.mod) 추적하기

~1 min read

제가 최근에 Dependabot alerts 에 확인된 취약점 중 패키지 확인이 안되는 취약점이 있었습니다.

Go에서 Stdin에 대한 테스트 코드 작성하기

1 min read

테스트 코드 작성 중 우리가 예측 가능한 함수 인자 값은 쉽게 체크가 가능하지만, 시스템으로 부터 넘어오는 데이터는 막상 작성하려고 하면 어떻게 해야할지 고민이 되기 시작합니다.

Golang Logrus에서 Channel hook 만들기

1 min read

Logrus는 golang의 아주 좋은 logger 패키지입니다. logrus는 hook을 이용해서 지정된 한번에 여러곳에 로그를 남길 수 있습니다. built-in hook으로는 현재 syslogio.Writer가 있고 저는 channel로 hook을 쓸 일이 있어 간단하게 작성하여 공유해봅니다 :D

Go에서 HTTP gzip response 처리하기

1 min read

최근 dalfox에 독특한 이슈가 제보됬는데(오프라인으로도 한번 제보받은 사항이라 이미 삽질을 좀 헀던 상태였네요) 오늘 이를 해결하고 어떻게 해결했는지 간략하게 공유할까 합니다. 특별한 내용은 아니지만, golang에서 http 기반 개발을 진행할 때 알고 있으면 실수를 예방할 수 있는 부분이죠.

pkg.go.dev에 go 패키지 즉시 업데이트하기

~1 min read

golang으로 개발된 앱은 pkg.go.dev에 저장되며 해당 사이트를 통해 패키지 정보를 볼 수 있고 실제 go get 으로 패키지를 가져올 때 이곳의 latest 버전을 가져오게 됩니다. 그래서 이 사실을 잘 몰랐던 과거의 저는 이런 실수도 했었던 기억이 나네요.

Go에서 아주 큰 JSON 파일을 핸들링하기

2 min read

최근에 시덥지 않은 문제로 구글링하다가 단순하게 해결한 일이 있어서 짧게 글로 공유 해볼까 합니다. 복잡한 문제로 생각해서 오히려 가까이에 있는 답을 놓치고 말았었네요.

Goreleaser에서 M1, Windows ARM64 지원하기

~1 min read

goreleaser의 각각 v0.157.0, v0.175.0 버전에서 M1 macbook, Windows ARM 64 지원이 추가되었습니다. 저도 제가 개발하는 도구에선 M1 지원이 약간 늦은 느낌이 있긴한데요. 관련해서 주의해야할 점들 정리해 둡니다.

Goroutine과 Sync

3 min read

Go 하면 어떤 특징이 떠오르시나요? 구글의 언어, 빠르다 등 전반적인 개념에서 goroutine, 채널 등 디테일한 부분까지 많은 것들이 있을텐데요, 저는 제가 처음 고를 접했을 때 가장 재미있게 봤던 것이 goroutine과 채널이였습니다.

Golang의 nil과 interface nil의 재미있는 특징

1 min read

Null은 일반적으로 존재하지 않는 값 또는 메모리 주소를 의미하며 언어에 따라 null nil nan none undefined 등 여러가지 형태로 표현됩니다. 다만 null이란 개념이 언어마다 특성과 철학, 표현하는 방식에 따라서 달라지기도 하는데요. 오늘은 golang에서의 null인 nil의 특성 하나를 살펴보려고 합니다.

25 Keywords in Go

1 min read

Go supports only 25 keywords. It’s very simple, which has the advantage of a low learning curve. I’ve never posting it while using Go. Let me summarize the meaning of each keyword today.

go-jwt와 golang-jwt/jwt

1 min read

최근에 golang으로 개발한 도구 중 jwt 라이브러리를 사용한 대다수의 프로젝트에서 아래와 같이 Security dependency alert이 나타났습니다.

Go에서 자동으로 테스트 코드 생성하기(with gotests)

3 min read

저는 테스트 코드를 많이 작성하진 않습니다. 아무래도 본업이 보안 엔지니어링이다 보니 현업 개발자처럼 꼼꼼하게 테스트 코드를 작성하고 조금 더 나아가 TDD(Test-Driven Development)를 신경쓰면서 개발할 수 있는 여유가 있는 것도 아니구요.

Bump a go package version

1 min read

My Problem

간혹 go get 으로 제가 만든 도구를 설치 시 구버전(현재는 2버전대인데, 1버전대가..)이 설치되는 이슈가 있었습니다. 또한 pkg.go.dev에도 구버전이 마지막 릴리즈로 있고 변화가 없던 상태였죠.

Go flag에서 custom usage 만들기

2 min read

golang에서 cli 도구를 만들 때 가장 먼저 접하는 도구는 flag입니다. 저 또한 flag로 시작하여 cobra, unfave 등 여러가지 써보다가 결국은 잘 사용하던 cobra를 버리고 flag로 다시 돌아왔습니다. go의 내장형 option parser로 심플하지만, 편의성을 위한 부분들은 많이 적어서 때때로, 직접 오버라이드와 같이 라이브러리의 원본 함수를 수정하여 사용해야하는 경우가 있습니다.

Write Metasploit Module in Golang

2 min read

Metaploit에서 2018년 12월부터 golang module 지원이 시작되었습니다. 저도 잘 모르고 있다가 최근에서야 알게 되었네요.

Update golang 1.10 to 1.13 with update-golang(subfinder install error fix)

~1 min read

SubFinder 설치 중 undefined: os.UserHomeDir , undefined: strings.ReplaceAll 에러가 발생해서 해결 방법 정리해둡니다. 아마.. 현재 일부 피씨에서 설치 시 위와 같은 에러가 발생할텐데요, 원인은 golang 의 버전 문제입니다.

[루비에서 Go로 넘어가기] Revel을 이용해 MVC 웹 구성하기

3 min read

Ruby에서 golang으로 주력 언어를 바꿔가는 중입니다. 이 과정에서 가장 문제가 되는 부분이 웹앱이였습니다. 이미 Rails에 익숙해진터라 대안이 될만한 여러 프레임워크를 찾아봤고, 2가지 생각이 나왔습니다.

Golang 으로 만든 웹 어플리케이션 Heroku에 배포하기

1 min read

요즘 공부도할겸 golang 으로 끄적끄적 만들어보고 있는게 있습니다. 그 중 일부는 웹 환경으로 구성하고 heroku에 띄울 생각인데, 루비처럼 사전에 세팅이 필요한 부분들이 있어서 내용 정리해둡니다.

Vim에서의 개발을 위한 최소한의 plugin 설정

1 min read

매번 느끼지만 글로 작성하지 않은 내용들은 나중에 다시 세팅하거나, 참고해야할 때 참 불편합니다. 꼭 필요할 때 보면 없다죠. 최근에도 vim 세팅을 다시 할일이 있어 하나하나 세팅하고 있는데, 한번쯤은 메모해두면 두고두고 볼 것 같다라는 생각이 들었습니다. 짧게나마 시간 내어서 글 작성해봅니다.

Learning Go Language - Hello world, GoRoutine

2 min read

요즘 Go langage를 배워볼까 합니다. 그래서 아주 천천히 틈날때마다 보고있는데, 조금씩은 정리해서 포스팅해볼까 합니다. 아마 익숙해지면 Ruby와 섞어서 코딩하게 될 것 같네요.

Back to Top ↑

crystal

Crystal-Lang is ❤️

2 min read

저는 최근에 Crystal-lang을 즐기고 있습니다. 간단한 토이 프로젝트부터 Noir란 사이즈가 점점 커지고 있는 프로젝트까지 Crystal을 통해 구현하고 있습니다. 오늘은 제가 Crystal을 좋아하게된 이유에 대해 이야기하려고 합니다.

Fiber concurrency

2 min read

동시성 프로그래밍은 재미있지만 구조나 사이즈에 따라 어려움을 동반합니다. 개인적으로도 도구 작성 시 자주 사용하기 때문에 제가 진행하는 프로젝트에서 자주 볼 수 있고, 블로그에도 Goroutine과 Sync, Ruby Concurrency 등 매년 동시성 관련해서 글을 작성한 것 같습니다.

Embed resources in crystal

2 min read

Crystal에서 리소스 파일을 바이너리에 Embed 하는 방법에 대해 기록해둡니다. 깃헙 이슈등을 찾아보면 stdlib로 만들어줄 것 같진 않았고 찾아보니 Rucksack이란 좋은 shard를 발견해서 간단하게 정리해둘게요. 참고로 Rucksack은 Linux와 macOS에서만 동작하고 Windows는 지원하지 않는다고 하니 이 점 참고하면 좋을 것 같습니다.

Default vs Release build in Crystal

1 min read

Crystal은 컴파일 언어로 바이너리로 빌드하여 사용할 수 있습니다. 그리고 공식 가이드에선 release build 시 —release flag 사용을 권고하고 있는데요. 오늘은 이 flag가 어떤 역할을 하는지, 왜 권고되고 있는지 정리해봅니다.

Encoding Only Your Choices, EOYC

2 min read

요즘 장난감 삼아 Crystal과 Elixir로 여러가지 코드를 작성해보고 있습니다. 특히 Crystal은 Ruby와 제가 예전에 한번 소개하기도 헀고 Ruby와 거의 유사한 문법에 속도까지 갖추고 있어 개인적으로 관심이 많았던 언어입니다. 최근에 여러가지 이유로 Crystal은 주력 언어로 만들어가고 있습니다. 오늘은 Crystal로 작성한 간단한 도구 하나 공유하려고 글을 작성해봅니다.

Crystal - Ruby와 비슷하며 빠른 프로그래밍 언어

2 min read

올 초쯤에 Crystal이란 언어에 대해 잠깐 이야기들은적이 있습니다. Ruby 문법과 유사하다는 것만 듣고 드디어 조금 더 살펴봤네요. 아직 정식 릴리즈도 아닌 상태이니 어떤 언어인지 정도만 정리해둘까 합니다.

Back to Top ↑

jekyll

Jekyll Collection 다루기

1 min read

최근에 Jekyll로 다시 이사 후 몇가지 기능들을 개발하고 있습니다. 그 중 하나를 해결하기 위해선 특정 type의 페이지들을 모아서 json으로 만들어주는 과정이 필요한데, Jekyll의 Collection 기능을 이용해서 쉽게 해결했습니다.

Hugo to Jekyll

1 min read

정말 설마설마 했습니다. 아니 이런 일은 없을거라고 장담했습니다. 작년에 Jekyll에서 Hugo로 전환한지 딱 1년만에 마음이 바뀌었습니다. 다시 Jekyll로 돌아갑니다.

Jekyll에서 Hugo로 이사가기 (Migration log)

7 min read

jekyll… 제가 예전에는 rubyist(ruby 사용자) 였습니다. 그러다가 2018~19년 쯤에 gopher(golang 사용자)가 되었고 이후부턴 만들고 있는 대다수의 도구는 golang 기반으로 만듭니다.

Jekyll Build Speed Up!

3 min read

종종 제 Github page는 빌드가 실패합니다. 물론 대략적인 이유는 알고 있었습니다. Github page는 약 최대 13분 전후 정도의 build time을 가질 수 있는데, 이를 넘어가게 되면 pending 되거나 실패합니다. 제 Jekyll의 빌드 시간이 15분 정도 걸리던 상태로 당연히 실패하는 경우가 발생했었죠.

Jekyll feed.xml 최소화하기

2 min read

RSS는 매우 오래된 기술이지만, 아직까지도 많은 웹 서비스에서 지원하고 사용되는 기술입니다. 일반 사용자가 리더를 통해 쉽게 글 목록을 받아서 읽을 수 있고, SEO 관점에서도 상당히 중요한 부분입니다.

Jekyll에 Utterances, Giscus 댓글 적용하기

2 min read

최근에 블로그를 blogger에서 github page로 옮기면서 댓글을 작성할 수 있는 환경이 사라졌습니다. Jekyll에서 많이들 사용하시는 Disqus의 경우 개인적으로 광고 이슈때문에 좋아하지 않기 때문에 댓글 서비스를 다시 찾아봤고, github issue 기반의 댓글 서비스인 Utterances를 알게 되었습니다.

Back to Top ↑

rails

Rails generate 시 멈추는 경우 해결 방법

~1 min read

제가 2019년부터 go를 메인언어로 확정하면서 ruby로 개발할 일이 매우 줄어들었습니다. 그래도 가끔씩 빠르게 작업이 필요한 경우 ruby를 의도하지 않게 사용하는데, 간혹 rails g, rails generate 시 멈추는 상황이 있습니다. 그럼 원인과 해결 방법에 대해 글 작성해봅니다 :D

Rails에서 HTTP Basic Auth 적용하기

~1 min read

HTTP Basic Auth는 HTTP에서 기본적으로 사용되는 인증 방식입니다. ID/PW를 Base64로 인코딩해서 Auth 헤더에 넣어 서버가 신뢰된 사용자인지 검증하는 방식으로 동작합니다.

Rails에서 DB Column 추가하기

~1 min read

rails는 database schema 등을 migration 파일로 관리합니다. 이를 이용하면 이미 만들어진 앱에서 DB Schema를 변경하거나 쉽게 Rollback할 수 있습니다.

Back to Top ↑

oast

OAST에 Hint를 더하다

2 min read

OAST(OOB)를 통한 테스팅 방법은 몇년 사이 정말 많은 발전이 있었습니다.

Back to Top ↑