전체 글 203

전자정부프레임워크 SQL Injection 취약점 추가하기

전자정부 프레임워크로 개발된 시스템에 특정한 목적을 위해 강제로 취약점을 부여해야하는 프로젝트가 있었다. 당시 시스템을 개발하던 개발자에게 SQL Injection 취약점을 부여해 달라고 요청 하였으나, 전자정부 프레임워크로 개발되었기 때문에 해당 취약점은 넣을 수 없다는 답변이 돌아왔다. 정말 프레임워크로 개발되었기 때문에 취약점 부여가 불가능한가? 당시 잠깐 찾아보고 테스트를 한 결과 아니었다. 전자정부 프레임워크 자체가 어렵게 구성되어있는 프레임워크도 아니기 때문에 쉽게 변경 가능하다. 1. 전자정부 프레임워크란? 솔직히 잘 모르겠다. 스프링 베이스의 프레임워크이며 국내 기업들의 개발 표준을 제시한 것 같다. https://egovframe.go.kr/home/compatsw/compatswList..

카테고리 없음 2021.11.15

SMTP서버 구축

테스트 용도로 SMTP서버를 구축해야 하는 경우가 있다. docker를 이용하여 간단하게 SMTP 서버를 구축하고 이용하는 방법이다. SMTP 서버: https://github.com/docker-mailserver/docker-mailserver Webmail 서버: https://www.rainloop.net/ 위 두개를 이용하여 서버를 구축한다. docker-mailserver 깃을 가져온 다음 docker-compose.yml에 rainloop 내용만 추가하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 version: '3.8' service..

카테고리 없음 2021.05.19

암/복호화 코드 샘플 (pycrypto)

가끔 서버간 통신이나 데이터를 저장할 때 암호화를 사용하는 경우가 있다. 보통 AES 암호화에 CBC모드를 주로 사용한다. 암호화 문자열 길이에 따라 뒤에 패딩값을 주는데 보통 문자열 길이를 기반으로 패딩값을 만든다. 예를 들면 평문: message 블록 사이즈: 16 패딩 문자열: \x09 (16-len(message)) 암호화할 문자 블록: message + '\x09'*9 위와 같이 된다. 아래는 주로 사용하는 암호화별 암/복호화 코드이다. 코드를 사용하려면 pycrypto가 있어야 한다. Linux: python -m pip install pycrypto Window: python -m pip install pycryptodome 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1..

카테고리 없음 2021.05.18

브라우저 시크릿 모드 우회

회사에서 NAC을 통해 그룹 정책이 내려오는 경우가 있다. 내려오는 정책 중 시크릿 모드(또는 프라이빗 모드)를 제한하는 정책이 내려오는데 점검을 하려면 다중 세션이 필요하므로 시크릿모드를 사용해야 한다. 아래 레지스트리를 건드리면 이를 우회할 수 있다. Google Chrome (0: 시크릿모드 사용, 1: 시크릿모드 차단, 2: 시크릿모드 강제사용) [Chrome 90.0.4430.212] reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome" /t REG_DWORD /v IncognitoModeAvailability /d 0 /f Brave Browser (Chrome과 동일) [Brave 1.24.85] reg add "HKEY_LOCAL_MA..

기타 2021.05.17

RPISEC 연습문제 / crackme0x0?? (기초 리버싱, radare2 연습)

문제는 간단하다. password를 받고 고정된 값과 같으면 성공 메시지를 출력한다. strings로 긁어낼 수도 있다. 먼저 radare2를 이용하기 전이라면 사용했을 gdb를 이용한다. [ gdb / b *main+70 ] main+70에는 strcmp가 들어있다. 비교구문을 잡으면 스택에 비교하는 데이터들을 확인할 수 있기 때문. 보면 1234는 입력한 값이고 g00dJ0B!이 flag가 된다. radare2를 이용한 풀이이다. 아직 문제를 더 풀어 보아야 할 듯 하다. 기본적인 명령어 aa - analyze all pdf @ function name - function [0x08048430]> pdf @main ;-- main: / (fcn) sym.main 133 | sym.main (); | ..

old 2018.02.27 (2)

hdcon 2016 / runme (mips 프로그램 실행)

mips 가상머신을 돌리려고 하다 보니 mips 관련 문제 풀이로 이어져서 풀어보게 되었다. ref : http://kblab.tistory.com/328 qemu는 1712 최신버전으로 먼저 받고 링크 페이지에 필요한 파일들을 받고 배치파일을 생성한다. qemu-system-mipsel -M malta -kernel vmlinux-3.2.0-4-4kc-malta -hda debian_wheezy_mipsel_standard.qcow2 -append "root=/dev/sda1 console=tty0" -redir tcp:4444::22 -nographic mips.bat 파일 공유 부분은 가지고있던 vm웹으로 전송하는 형태로 사용하였다. 뭐... runme 문제 자체가 mips상에서 실행하면 되는 프로..

old 2018.02.27

linux / source.list 수정하기

qemu로 mips squeeze 버전을 설치했었다. 필요에 의해 gdb를 설치하려는데 자꾸 설치가 안된다. root@debian-mips:~# apt-get install gdb Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: gdbserver libpython2.6 Suggested packages: gdb-doc The following NEW packages will be installed: gdb gdbserver libpython2.6 0 upgraded, 3 newly installed, 0 to ..

old 2018.02.27

labyrenth 2017 / Mobile 2 - routerlocker (mips 리버싱, gdb set follow-fork-mode child)

mips가 mobile로 분류 되어 있다. 환경을 맞추고 실행을 시켜 보면 위와 같이 나온다. License file not found로 봐서는 파일을 읽어 들이는 것으로 보인다. [ IDA - fopen (loc_400908) ] mips에서 파라미터가 들어가는 형태는 a0, a1을 사용하는 듯 하다. 형태를 좀 자세히 알기 위해서 fopen의 원형을 보면 (https://www.ibm.com/support/knowledgecenter/ko/ssw_ibm_i_73/rtref/fopen.htm) FILE *fopen(const char *filename, const char *mode); 이와 같은 형태를 띈다. IDA에서 출력한 정보를 바탕으로 보면 fopen($a0, $a1)의 형태를 지닌다. mod..

old 2018.02.27

labyrenth 2017 / Mobile 1 - Ezdroid(안드로이드 코드 리버싱, 자바 연산상 오류 )

apk를 디컴파일 해 보면 볼만한 클래스는 EzMain과 ones 두 개가 존재한다. EzMain을 메인으로 생각하면 된다. [ onCreate ] onCreate부분을 보게 되면 Part1으로 특정 문자열이 출력 되게 되어 있다. 기기를 붙여 실행을 시키면 log로 확인이 가능하다. 아니면 코드 분석을 하면 된다. [ retIt ] part1의 답인 retIt을 보면 위와 같다. 고정된 숫자값의 shift right x만큼을 한다. 단, 저장되는 형태가 byte이므로, &연산을 통해 버려주어야 한다. 파이썬 연산으로 변환하면 다음과 같다. (-1041749503 >> 5) & 0xff (-1865645093 >> 9) & 0xff (-1972361451 >> 7) & 0xff (-1779558645 >..

old 2018.02.27