분류 전체보기(42)
-
[문제해결] lock wait timeout exceeded try restarting transaction
야생의 버그가 나타났다. 오늘 코딩중 lock wait timeout exceeded try restarting transaction 이라는 에러를 마주쳤다.문제의 sql 은 insert 작업이었고, 로그성 데이터를 남기는 sql 이었다. 해당에러를 구글에 검색하니 트랜잭션이 데이터베이스 리소스에 대한 락을 획득하려 시도하지만 어떤 트랜잭션이 해당 테이블을 잡고 놔주지 않아 발생한다고 나와있었다.로컬에 서버를 띄워 개발하고있었고, sequelize logging 을 켜두고, 수상해보이는 코드마다 BP 를 찍어 확인하였다.다행히 원인은 간단하였다. 바보같이 문제의 sql 을 실행하는 코드에 transaction 을 안 넣어 준 것이었다. AS-ISawait this.loggingService.create(..
2024.04.14 -
Mui Toolpad 로 프로젝트를 배포해보기
Mui Toolpad Mui Toolpad 란? https://mui.com/toolpad/ chat gpt 피셜 MUI Toolpad는 개발자가 내부 애플리케이션을 더 빠르게 만들 수 있도록 설계된 자체 호스팅, 오픈 소스, 저코드(internal tool builder)입니다. MUI 컴포넌트를 활용하여 사전 제작된 UI 컴포넌트를 드래그 앤 드롭하여 데이터 소스를 연결하고 앱을 신속하게 출시할 수 있습니다. 이 플랫폼은 여러 데이터 소스를 결합하고 툴패드 내에서 직접 JavaScript를 작성하여 분석 대시보드, 관리 패널, 유틸리티 앱을 특히 쉽게 구축할 수 있도록 합니다. Toolpad는 속도와 효율성에 중점을 두고 UI 구축, 백엔드 로직 및 데이터 연결을 단순화함으로써 데이터 집약적인 Rea..
2024.03.11 -
서울 시위/행사 알리미 앱 고치기 - 타임아웃
서울 시위/행사 알리미 앱이란? https://topis.seoul.go.kr/ 의 api 를 특정 주기마다 크롤링하여 이메일로 서울시 내 시위/행사 관련 알림을 보내주는 lambda 애플리케이션 이다. 서울로 출근하거나 놀러갈때 시위나 행사때문에 난감한적이 많았는데 이 정보를 사전에 알림받기위해 만든 애플리케이션 이다. 동작방식 특정 주기마다 공지 api 를 호출하여 공지 정보를 얻고 새로운 공지를 mongodb 에 기록한다. 기존 mongodb 에 있는 데이터를 이용해 이미 조회되었던 공지를 제외한 새로운 공지에 대해서 알림을 보내기 위해 sqs 에 pub 한다. email 을 보내는 lambda 함수는 sqs 를 컨숨하여 mongodb 에 등록된 사용자들에게 email 을 보낸다. https://g..
2023.10.19 -
Path traversal tips
2020년도 사이버작전경연대회에 나온 웹 문제에서 이 부분을 알았다면 그 문제를 풀었을지도 모른다. 해당문제에서는 /log.html?time= 의 time파라미터에서 path traversal이 가능하다는 것 까지 알아놓은 상태로 아무것도 못하고 대회가 끝나버렸다. 이후 풀이과정을 보니 신기했는데. 바로 /proc/self/environ 등을 이용해서 소스코드를 알아 낼 수 있었던 것이다. 그래서 이 포스트에 주로 타겟으로 잡아볼만한 파일들을 정해 보려고 한다. /etc/passwd : 사용자의 정보가 저장되어있음. /etc/group : 그룹의 정보가 저장되어있음. /etc/shadow : 이건 root권한이 없으면 못열기 때문에 별로 안쓸 것 같다. /proc/cpuinfo : 시스템의 CPU정보 조..
2020.10.29 -
Dreamhack.io/ 해킹입문, xss
Dreamhack.io를 풀기 시작했다. xss 문제를 보자 선린인터넷고 2020 모의해킹방어대회에서 xss문제를 못풀었었던게 생각나서 풀어 보았다. 플래그는 flag.txt, FLAG변수에 있다고 한다. 위 xss와 memo를 들어가보면 xss파리미터로 전송된 값이 html로 출력되는 듯 하다. 내가 xss 코드를 입력할 장소는 flag이다. 저곳에 xss코드를 입력해서 서버의 봇이 이 페이지를 방문했을때 해당봇의 쿠키를 내 서버로 옮겼더니 플래그가 나왔다. 나는 서버를 가지고 있지 않아서 goorm.io 에서 컨테이너를 만들어 해당 문제를 해결했다. 구름에 노자서버를 만들어 놓고 다음과 같은 스크립트를 문제에 삽입했다. 내 구름서버로 봇의 쿠키가 전송되는것을 볼 수 있었다.
2020.08.05 -
GDB 사용법 정리 *(현대오토에버 과제)
GDB : GNU에서 나온 디버거 프로그램 OLLYDBG나 IDA같이 프로그램을 디버깅할 수 있는 리눅스에서 쓰는 디버거 프로그램 실행 방법 : gdb "파일명" tip : gdb 를 실행할때 -q 옵션을 주면 부가적인 메시지가 뜨지 않는다. 이걸 alias로 등록해 놓으면 더 좋겠으니 #echo "alias gdb=\"gdb -q\"" >> ~/.bashrc 위와같이 명령어를 입력해 놓으면 좋을 것 같다. gdb 도 라우터를 만지는것과 비슷하게 명령어를 다 치지 않아도 어느정도 치면 알아듣는다. 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 disassemb..
2020.07.26