DoR@Hee의 끄적끄적
이 문제는 or , and 문자열을 필터링 하고있다 or, and 를 문자열을 우회하는 방법을 이용해서 문제를 풀도록 한다 or = ||and = &&로 치환해서 입력 할 수있다. 쿼리값을 다음과 같이 입력해주면 성공
wolfman 문제 이 문제는 " " 공백을 입력 No whitespace ~_~가 나온다즉 " " 공백 우회기법을 사용해서 공백을 우회해야한다. mysql에서 공백 우회방법은 - /**/ - 주석- %09 - tab- %0d - creturn- %0a - inefeed creturn 과 inefeed 는 개행문자라고도 불리기 때문에 " " space와 같은 역할을 한다. %09 - tab으로 공백을 넣은 후 쿼리값을 항상 참으로 해주면 성공
ORC 문제 $_GET[pw]를 이용해서 pw의 값을 받고 있고 pw 파라미터에 prob 가 들어가면 "No Hack ~_~"가 나타난다 입력받은 pw를 쿼리문에 넣어서 쿼리문에 따른 값이 나오고 있다. 그리고 값은 값을 addslashes 함수를 이용해서 ' ' 등이 나오면 \로 이스케이프 하고있다. result['pw'] 즉 admin 비밀번호와 입력받은 pw가 맞으면 solve() 일단 쿼리문을 무조건 참 값을 만들기위해 '1 pw or 1=1-- %20을 입력 "Hello admin"이라는 문자열이 나온다. pw의 길이를 알아내기 위해서 1 or length(pw)=1 입력일단 한자리는 아니라는것을 알 수 있다.이유는 참값이 나오면 "Hello admin" 문자열이 나타나야하기 ㄸ '1 or le..
0-0 사전준비, DB이름 길이, DB이름 가져오기: https://dorahee.tistory.com/108?category=735413 0-1 table 길이, 이름 가져오기: https://dorahee.tistory.com/109?category=735413 0-2 칼럼 길이 가져오기테이블에 존재하는 칼럼값을 가져오기 위해서 and length((select column_name from information_schema.columns WHERE table_name='sql_injection' limit 0,1)) = 2을 입력한다. 참이기 때문에 값이 나오는걸 확인 할 수 있고 sql_injection에 첫번째 칼럼은 길이가 2 인것을 확인할수있다. mysql에서 쿼리문을 입력해보면 역시 참값이..
0-0 사전준비, DB길이, DB이름 가져오기 : https://dorahee.tistory.com/108?category=735413 0-1 테이블 길이 가져오기 일단 DB에 존재하는 테이블을 길이 알아내기 위해서 length((select table_name from information_schema.tables where table_schema = 'blind_db' limit 0,1)) = 1 쿼리를 입력한다 위 와 같이 쿼리가 들어갈 경우 php에서는 "SELECT * FROM sql_injection WHERE no = 1 and length((select table_name from information_schema.tables where table_schema = 'blind_db' lim..
1-1 Blind Sql Injection 이란?- 일반적인 SQL Injection은 DB에서 도출되는 내부 오류를 이용해서 SQL 공격을 하지만 그러한 에러 구문이 안보일 경우 쿼리에 참, 거짓에 따라 다른 만들어내는 데이터를 기준으로 공격하는 방법 1-2 사전 준비 ㅠ 1. mysql > phpmyadmin 에서 Blind Sql injection 을 실습하기 위해서 DB: blind_dbtable: sql_injection 을 생성한다. 테이블 안에는 미리 값을 넣어놨다. "select * from sql_injection" 을 입력 후 결과 12345678910111213141516171819202122Colored by Color Scriptercs 실습을 위해서 간단한 PHP 파일을 만들었다..
1-1 파일 읽고 쓰기- open 내장 함수를 사용하여 파일을 쓸 수 있다. 파일 객체 = open(파일이름, 파일 열기 모드) 파일 열기 모드설명r읽기 모드 – 파일을 익기만 할 때 사용w쓰기 모드 – 파일에 내용을 쓸 때 사용s추가 모드 – 파일의 마지막에 새로운 내용을 추가할 때 사용 파일 모드에는 3가지가 있고 위와 같이 사용이 가능하다w는 쓰기모드이고 파일 덮어쓰기는 안된다. 파일 생성 확인 f.write() 를 사용하여 파일에 쓰는것이 가능하다. f.readline() 함수를 이용해서 파일의 내용을 한 줄 읽어 오는것이 가능하며f.readlines()를 사용할 경우 리스트 형식으로 파일 내용을 읽어온다. read()를 사용하여 파일 전체 내용을 읽어는것도 가능하다. a모드를 사용, 파일 내용을..