Python(5)
-
EZ_command_injection 풀이
/ping 페이지로 가보면 GET 방식으로 입력을 받습니다그리고 ipaddress.ip_address() 함수에 host 파라미터에 들어있는 값을 넘겨줍니다 ipaddress.ip_address()인수로 전달된 IP 주소에 따라 IPv4 또는 IPv6로 파싱IPv4Address() 또는 IPv6Address()를 써도 동일한 결과 https://docs.python.org/3/library/ipaddress.html#module-ipaddress ipaddress — IPv4/IPv6 manipulation librarySource code: Lib/ipaddress.py ipaddress provides the capabilities to create, manipulate and operate on ..
2024.05.11 -
[CTF-D] google 풀이
문제에서 구글의 메인 화면으로 보이는 png 파일을 줬습니다. 뭔가 특별한 점이 있을 것 같아 한참을 뚫어지게 바라봤는데... 그림에 빨간색 점이 몇 개 박혀있네요? 그림을 확대해보면 빨간 점이 더 확실하게 보입니다. 보아하니 그림에 점이 한두 개 있는게 아닌데, 위치가 저렇게 중구난방인걸 보면 아무래도 빨간 점의 그림 상 좌표를 따서 푸는 형식의 문제인 것 같습니다. 점의 좌표는 파이썬으로 찾아보겠습니다. 점의 좌표를 찾기 위해 google.png를 그림판으로 옮긴 후에 스포이드로 찍어봤습니다. RGB(255,0,112) 이 색으로 되어있는 픽셀을 찾아주는 파이썬 코드를 짜서 돌려보겠습니다. from PIL import Image img=Image.open("./google.png") res="" fo..
2022.10.24 -
[BOJ 1287] 할 수 있다
https://www.acmicpc.net/problem/1287 1287번: 할 수 있다 곱하기가 연산자 우선순위가 빠르므로 5+(1+2)*3 = 5+3*3 = 5+9 = 14가 된다. 연산자의 우선순위는 다음과 같다. (), */, +- 여기서 *와 /가 연산자 우선순위가 같고, +와 -가 연산자 우선순위가 같다. ()가 www.acmicpc.net - 문제 요약 식이 문자열 형식으로 주어지면 그 식을 계산하여 결괏값을 10진수 형식으로 출력하시오. 단, 식을 구성하는 문자는 0~9까지의 숫자, +, -, /, *, (, )이고 +, -, /, *는 이항 연산자이다. 식이 올바르지 않아 계산 할 수 없다면 "ROCK"를 출력한다. - 알고리즘 정리 이 문제는 무조건 파이썬으로 푸는 게 편할 것 같아서..
2021.10.11 -
bugbear 풀이
이번 문제 역시 pw에서 ' 가 필터링되어있습니다. no에서는 ', substr, ascii, =, or, and, (공백), like, 0x를 필터링합니다. no에서의 조건이 저번 문제보다 훨씬 까다로워졌습니다. 우회 방법은 아래에 정리해놓겠습니다. ' -> " substr -> left(), right(), mid() ascii -> ord(), hex() =, like -> instr, in or -> || and -> && (공백) -> /**/ https://zetawiki.com/wiki/SQL_IN_%EC%97%B0%EC%82%B0%EC%9E%90 SQL IN 연산자 - 제타위키 다음 문자열 포함... zetawiki.com like가 필터링돼서 조금 당황스러웠지만, 구글링을 해보니 in이라..
2021.08.30 -
basic_exploitation_001 풀이
#include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30); } void read_flag() { system("cat /flag"); } int main(int argc, char *argv[]) { char buf[0x80]; initialize(); gets(buf); return 0; } 이 코드는 basic_exploitation_001.c 파일에 들어있는 소스코드입니다..
2021.07.10