본문 바로가기
728x90

BoB11

[v4, 5.] flex and bison 4단계 : 잘못된 수식을 입력하면, 수식에서 연산자의 좌변, 우변 중 불충분한 부분을 오류로 출력하기 5단계 : 주석기능으로 수식 // 을 인식하고, 이후의 문자열은 예외처리하는 수식 계산기 [makefile] all: compiler_v4-5 compiler_v4-5: compiler.l compiler.y bison -d compiler.y flex compiler.l cc -o $@ compiler.tab.c lex.yy.c -lfl clean: rm -f *.c rm -f compiler_v4-5 rm -f *.h [compiler.l] %{ #include "compiler.tab.h" #include #include %} %% "+" { return ADD; } "-" { return SUB;.. 2022. 3. 17.
[v3.] flex and bison 3단계 : 소괄호 '( )' 로 묶은 수식을 우선하여 사칙연산을 수행하기 [makefile] all: compiler_v3 compiler_v3: compiler.l compiler.y bison -d compiler.y flex compiler.l cc -o $@ compiler.tab.c lex.yy.c -lfl clean: rm -f *.c rm -f compiler_v3 rm -f *.h [compiler.l] %{ #include "compiler.tab.h" #include #include %} %% "+" { return ADD; } "-" { return SUB; } "*" { return MUL; } "/" { return DIV; } "|" { return ABS; } ([0-9]+\... 2022. 3. 17.
[v2.] flex and bison 2단계 : 소수점이 있는 수를 입력받아 사칙연산을 수행하기 [makefile] all: compiler_v2 compiler_v2: compiler.l compiler.y bison -d compiler.y flex compiler.l cc -o $@ compiler.tab.c lex.yy.c -lfl clean: rm -f *.c rm -f compiler_v2 rm -f *.h [compiler.l] %{ #include "compiler.tab.h" #include #include %} %% "+" { return ADD; } "-" { return SUB; } "*" { return MUL; } "/" { return DIV; } "|" { return ABS; } ([0-9]+\.[0-9]+)|.. 2022. 3. 17.
[v1.] flex and bison 1단계 : 정수, 절대값을 입력받아 사칙연산을 수행하기 [makefile] all: compiler_v1 compiler_v1: compiler.l compiler.y bison -d compiler.y flex compiler.l cc -o $@ compiler.tab.c lex.yy.c -lfl clean: rm -f *.c rm -f compiler_v1 rm -f *.h [compiler.l] %{ #include "compiler.tab.h" %} %% "+" { return ADD; } "-" { return SUB; } "*" { return MUL; } "/" { return DIV; } "|" { return ABS; } [0-9]+ { yylval = atoi(yytext); retur.. 2022. 3. 17.
OTP(One-Time-Password) 개발 간단하게 OTP를 개발한 내역을 아래 코드로 기록해두었다. OTP에 대한 자세한 내용은 아래 나무위키를 확인해보면 된다. https://namu.wiki/w/OTP #include #include #include #include void MD5Hash(char *string) { int i; unsigned char digest[MD5_DIGEST_LENGTH]; char md5Hash[50] = {0,}; char *message; message = strcat(string, "BoBOTP"); MD5_CTX context; MD5_Init(&context); MD5_Update(&context, message, strlen(string)); MD5_Final(digest, &context); for(.. 2022. 3. 5.
[webscanner]세 번째 기록 이제야 좀 봐줄만한 웹 스캐너가 되었다. XSS 스캔은 가능한데... 한계점이 너무 분명히 존재한다. 1. json형태로 전송되는 데이터에 XSS 값을 넣어 공격하는 것이 구현되어 있지 않다. 2. logging 모듈을 사용하지 않고 파일 오픈으로 로그를 처리했다. 3. 쓰레드로 구성해놓지 않아 속도가 너무 느리다(물론 파이썬이라 느린 것도 있겠지만...) 4. 세션값(쿠키)을 주는 기능이 구현되어 있지 않다 아니...이렇게 적어놓으니 생각보다 너무 쓰레긴데...?ㅠㅜ 코드는 깃허브를 참고하길 바란다. 만약 좀 더 좋은 cheat sheet가 있다면 좋을 것이고 기능을 추가해봐도 좋을 것 같다!! git Link: https://github.com/maro5397/webscanner 2021. 8. 21.
[webscanner]두 번째 기록 살려줘...ㅋㅋㅋㅋㅋㅋ 이름 현재 상황 이후 계획 (Web scanner - 퍼저 개발) 1. 현재 sqli 공격의 가능성 유무 판단만 완료해놓은 상태 1. name이 id, password와 관련된 것이라면 sqli 공격을 수행 2. input 태그가 text일 경우 xss 공격을 수행 진행 상황이 너무 더디다 일단 저번에 만들어 놓은 스캐너가 동작하는 모습을 첨부해놓겠다. git Link: https://github.com/maro5397/webscanner 2021. 8. 21.
[webscanner]첫 번째 기록 계속해서 메모장에 적던 기록을 이제서야 정리한다. 아무래도 막 코딩 하면서 만든 것이라 그런지... 부족한 점이 많은 것 같다ㅠㅜ 일단 한계점에 대해 적어보도록 하자... 이름 현재 상황 이후 계획 (Web scanner - 퍼저 개발) 접근 가능한 url(dirscan)\n -> 찾고 싶은 공격 벡터(tag or Markup lang)\n -> 웹 서버의 세부 정보(특히 서버의 버전 정보, 서버의 종류)\n -> 웹에 접근할 수 있는 포트\n- single quote을 사용한 sql 공격 유/무\n\n\n- sqli 의 cheat sheet\n- XSS 의 cheat sheet"}"> target 환경 + Acunetix에서 제공하는 test 페이지 추가 - 한 가지 웹 취약점(sqli) 탐지 - 공격.. 2021. 8. 21.
웹 스캐너(퍼저) 개발명세서 1. 목표 웹 스캐너(퍼저) 개발을 통해 웹 페이지에서 발생할 수 있는 취약점을 탐지하여 미리 유지/보수할 수 있도록 만들고, 수업의 취지에 맞게 웹 스캐너의 구조 및 동작 방식을 분석하여 명확히 이해할 수 있도록 한다. 2. 설명 웹에서 발생할 수 있는 취약점인 SQL injection, XSS, XXE 등이 발생할 수 있는 벡터를 찾은 후 input generator를 통해 HTTP의 상태코드를 보고 공격 가능성을 판단하거나 직접 공격을 수행하여 그 결과를 반환하는 프로그램이다. 취약점을 선정하는 기준은 OWASP TOP 10 vulnerability를 참고한다. 3. 언어 및 환경 개발 언어 python target 환경 OS: windows 10 Example of web server 1. web.. 2021. 7. 25.
728x90