security 183

[Dreamhack Wargame] Simple_sqli + blind SQLI 스크립트

일반 풀이 SELECT * FROM users WHERE userid="admin"-- " AND userpassword="DUMMY" SELECT * FROM users WHERE userid="admin" or "1" AND userpassword="DUMMY" SELECT * FROM users WHERE userid="" or 1 LIMIT 1,1-- " AND userpassword="DUMMY" 파이썬 스크립트 이용한 blind SQLI 풀이 import requests import string url = 'http://host3.dreamhack.games:18628/login' data = { 'userid': '', 'userpassword': '' } payload = 'admin" a..

security/웹해킹 2023.06.28

[Dreamhack Wargame] XSS-2

xss cheat sheet 사용해서 vuln 공략 Element.innerHTML 취약점 https://developer.mozilla.org/ko/docs/Web/API/Element/innerHTML const name = "John"; // assuming 'el' is an HTML DOM element el.innerHTML = name; // harmless in this case // ... name = ""; el.innerHTML = name; // harmless in this case 이것은 cross-site scripting 공격처럼 보일 수 있지만, 결과는 무해합니다. HTML5 는 innerHTML 과 함께 삽입된 태그가 실행되지 않도록 지정합니다. 그러나 요소를 사용하지 않..

security/웹해킹 2023.06.27

[Dreamhack Wargame] Carve Party

콘솔창에서 js로 해결하는게 젤 간단하긴 하지만 파이썬 자동클릭 매크로를 만들어 풀어보았다 import pyautogui import time if __name__ == '__main__': width, height = pyautogui.size() print(width, height) # 2560 1440 mouse_x, mouse_y = pyautogui.position() print(mouse_x, mouse_y) # python 파일 실행하는 순간 커서 위치 time.sleep(3) # 딜레이 pyautogui.click(x=width/2, y=height/2, button='left', clicks=9999, interval=0.0001)

security/웹해킹 2023.06.27

[Blitzs CTF] d + 파이썬 itertools!!

- 플래그(byte)를 long으로 바꾼 후 prime인지 확인 - q에 256bit 크기의 랜덤한 prime 넣음 - φ(n) = (p-1)(q-1) / e = 65537 / d = 228001~~~20490241918976205665073 인 RSA 암호화 같다 푸는 방향은 d * e ≡ 1 (mod φ(n)) ☞ d * e ≡ 1 (mod (p-1)(q-1)) ☞ d*e-1 ≡ 0 (mod (p-1)) ☞ d*e-1 = k (p-1) 형태 d와 e를 알기 때문에 d*e-1 의 약수들을 잘 살펴보면 p-1 구할 수 있겠다! - 무작정 브포 돌리면 케이스 너무 많기 때문에 https://www.alpertron.com.ar/ECM.HTM 이런 곳에서 먼저 num=d*e-1를 소인수분해해 약수 구한 다음..

security/암호학 2023.06.25

[Dreamhack CTF] 3-Cipher : Caesar, RSA, AES

23.06.24 Dreamhack CTF Season 3 Round #6 (🌱Div2) 문제이자 나의 첫 암호학 문제! Caesar 암호 평문의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 치환하는 단일 문자 치환 암호 - 알파벳 소문자만 +13 옾셋만큼 밀어서 치환하더라 RSA 암호 1. 배경지식 φ(n)는 오일러 파이 함수로, n 이하의 양의 정수 중 n과 서로소인 수의 개수 2. 키 생성 - 서로 다른 두 소수 p, q를 선택하여 n=p*q로 세팅한다 - 이 때 φ(n) = p*q - p - q + 1 = (p-1)(q-1) 이다 - φ(n)보다 작은 수 중 φ(n)와 서로소인 e를 선택한다 - d ≡ e^(-1) (mod φ(n)) 를 만족하는 적절한 d를 선택한다 => n, e 는 공개키..

security/암호학 2023.06.24

[Dreamhack Wargame] _IO_FILE Arbitrary Address Write

fread() 함수 분석 _IO_file_xsgetn 함수에서 fp->_IO_buf_base 존재하는지 / fp->_IO_buf_end - fp->_IO_buf_base 값이 인자로 전달된 n보다 큰지 검사 _IO_new_file_underflow 함수에서 fp->_flags 존재하는지 / _IO_NO_READS 플래그는 OFF되어있는지 검사 => fp->_fileno, fp->_IO_buf_base , fp->_IO_buf_end - fp->_IO_buf_base 를 인자로 하여 read syscall 호출 문제 소스코드 int main() { FILE *fp; char file_buf[1024]; init(); fp = fopen("/etc/issue", "r"); printf("Data: "); r..

[Dreamhack Wargame] _IO_FILE Arbitrary Address Read

_IO_FILE 구조체 기본 개념 struct _IO_FILE { int _flags;/* High-order word is _IO_MAGIC; rest is flags. */ /* The following pointers correspond to the C++ streambuf protocol. */ char *_IO_read_ptr;/* Current read pointer */ char *_IO_read_end;/* End of get area. */ char *_IO_read_base;/* Start of putback+get area. */ char *_IO_write_base;/* Start of put area. */ char *_IO_write_ptr;/* Current put pointe..

[Dreamhack Wargame] send_sig

IDA를 사용해야됐다는 것 빼고는 진짜 간단한 문제. 문제 조건 ELF 64-bit LSB executable, x86-64, dynamically linked, stripped Partial RELRO No canary found NX enabled No PIE start(), sub_4010B6(), sub_401090(), sub_4010A6() 정도 함수만 보면 됨 문제 분석 void __noreturn start() { setvbuf(stdout, 0LL, 2, 0LL); setvbuf(stdin, 0LL, 1, 0LL); write(1, "++++++++++++++++++Welcome to dreamhack++++++++++++++++++\n", 0x39uLL); write(1, "+ You ..