study 973

syntax highlighter 사용법, 티스토리 음악넣기.

http://bspfp.pe.kr/357 요기 참고하기!! 0. 스킨의 html,css수정에서 사이에 한줄 추가. 복사용 : 1. 올릴 코딩부분은 앞을 로, 뒤를 태그로 감싼다. 하이라이팅할 언어 종류는 여기서 확인 가능. ex) c언어 코드 #include int main(void) { printf("Hello World\n"); return 0; } 를 올리고자 한다면 #include int main(void) { printf("Hello World\n"); return 0; } 처럼 만들어서 메모장에 복사해둔다. 2. 글작성중 오른쪽 위의 HTML버튼을 클릭해서 HTML모드로 들어간다. 3. html모드 내부에 만든 코드를 해당 부분에 붙여넣는다. ~~~ 이때 태그 내부에는 우리가 올릴 코드 외에 ..

private/memo 2014.08.25

시간 기반 sql 인젝션.

참고 : http://www.sqlinjection.net/ 시간 기반 인젝션은 간단히 설명하자면 쿼리의 결과값이 true이던 false이던간에 그 결과값을화면에 출력하지 않아서 알아볼 수 없을 시에, 시간을 멈춤으로서 경과한 시간을 가지고쿼리의 참 거짓을 판별하는걸 말합니다.테이블을 간단하게 하나 만들었습니다. 1. 위 설명 그대로 시간을 멈춤. mysql의 sleep함수를 이용합니다. password에서 첫 글자를 뽑아왔을시 h가 맞으면 2초를 멈추겠다는 쿼리입니다. 아래 결과를 보면 첫글자가 h가 맞을시 2초의시간이 걸렸고, 틀렸을시에는 그냥 결과를 출력하는걸 알 수 있습니다. 코딩을 할 때에는 시간 모듈같은걸 써서 해당 시간이상걸렸으면 true라고 판별하면 되겠죠? 2. sleep함수가 필터링되서..

소켓과 urllib2 속도차이

일부러 속도 비교해본건 아니고, 제가 소켓과 urllib2두개로 문제를 풀어보면서 코딩 연습을 하는데.. 전 오래걸리는 코드같은건 습관적으로 포문 돌때마다 번호가 출력되게 코딩합니다.(제대로 돌고 있는지 확인을 위해서) 700번 반복하는 문제가 있는데 소켓과 urllib2로 코딩하다보니까 숫자 내려가는 속도가 눈에 보일 정도로 차이가 나더라고요?? 그래서 time모듈을 써서 속도를 비교해봤습니다. 예시 문제는 suninatas 8번입니다. ( http://suninatas.com/Part_one/web08/web08.asp ) 아이디는 admin, 비밀번호는 0~9999사이의 하나라고 주석에 나와있는 완전 노가다 문제입니다. 당연히 코딩연습하라고 낸 문제같습니다. 답은 이미 알고있어서 짧은 범위만 돌리겠..

효율적인 블라인드 인젝션

일반적으로 블라인드 sql인젝션시 ascii(substr('문자열',1,1)) 이런식으로 값을 뽑아냅니다.뽑아낼 문자열을 예를들어서 'zabcde'라고 하면 대부분 포문을 돌릴때 아스키코드값의 범위인32~127이나 48~127사이로 포문을 돌리는데.. ascii(substr('zabcde',1,1))=32~127이라고 포문을 돌린다고 가정하면 첫번째 문자 z를 뽑아내려면z의 아스키코드값인 122가 나올때까지 32~122까지 91번을 돌려야 값을 뽑아낼수 있습니다.비밀번호에 영문자만 있는걸 알면 97~122사이로 돌릴텐데 그걸 모른다는게 문제이죠.더군다나 다른 문자도 껴있다면 굳이 효율을 위해 97~122보다 시간이 조금 오래 걸리겠지만32~127범위로 포문을 돌릴겁니다. 평균적으로 한 문자 돌리는데 최소..

숫자 뽑아오기.

sql 인젝션시 숫자가 어떻게든 필요한데 숫자가 다 막혀있을경우...더군다나 수학 함수도 다 필터링되어있을 경우 환경변수에서 뽑아서 만들면 됩니다.mysql같은경우 show variables;명령어로 환경변수 확인 가능. tmp_table_size 같은 경우 뭔가 숫자가 많아서 하나씩 뽑아내거나 하기 편하겠네요.환경변수는 @@로 호출. 환경변수에서 필요한 수 뽑아내는 예제. 조금 공부해보신분들은 아시겠지만 substr이 막혀있으면 left,right나 mid같은걸로도 됩니다.위에 적은 예제처럼 수학 함수로 변형해서 뽑아오거나 또는....1^1 == 0, 같은문자^같은문자 == 0 숫자는 막혀있다고 가정했으니 문자로 해도 됩니다. 1 like 1 ==1, 같은문자 like 같은문자 == 1 마찬가지입니다...

webhacking.kr 7번 소스코드

import urllib,urllib2 # -*- coding: euc-kr -*- form = urllib.urlencode({'id':'?????','pw':'?????'}) req = urllib2.Request('http://webhacking.kr',form) res = urllib2.urlopen(req) session = res.headers.get('set-cookie') #여기까지는 항상 똑같은 세션얻어오는 코드. while 1: req = urllib2.Request('http://webhacking.kr/challenge/web/web-07/index.php?val=0)%0aunion%0aselect%0a(3-1') #계속 요청을 보내면서 req.add_header('cookie',s..

webhacking.kr 5번

로그인 버튼 눌렀을시 경로/challenge/web/web-05/mem/login.php조인버튼 누르면 alert창이 뜸. 이것저것 해보다가 /challenge/web/web-05/mem/ 까지만 입력해보면디렉터리 리스팅 취약점 발견 join.php들어가서 소스코드 확인. http://jsbeautifier.org/ 에서 한번 해독해보면보기좋게 나옴. 중간즈음의 if문에서 어떤 검사를 해서 아닐시 alert으로 출력하고 history.go(-1); 로되돌다온다는걸 알수있음. 그냥 저부분은 자바스크립트이므로 우회할수 있다고 생각하고 폼 정보만살펴보면document.write('Join'); document.write('.....'); document.write(''); document.write('id')..

webhacking/client 2014.08.19

파이썬챌린지.com 5

http://www.pythonchallenge.com/pc/def/peak.html 뭔지 모르겠다. http://www.pythonchallenge.com/pc/def/banner.p 라는 이상한 주소를 찾긴했는데 뭔 짓을 해야될지 모르겠다. 파이썬 peak, 파이썬 peak hell 등으로 검색해봤더니 peakle모듈을 이용하는 문제라고 한다.. 아...... peakle모듈은 dump로 어떤 인코딩을 해서 저장(?)하고 load로 다시 디코딩을 해서 불러온다. (딱히 표현할 말이 생각안나서 인코딩 디코딩이라고 표현했습니다.) banner.p를 다운받아서 인코딩된거라 가정하고 디코딩을 해봤습니다. import pickle file = open('banner.p','rb') data = pickle.l..

파이썬챌린지.com 4

http://www.pythonchallenge.com/pc/def/linkedlist.php ? 아무것도 없고 사진 클릭하면 and the next nothing is 44827 이 나옵니다. url은 http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345 이고요. 그럼 바꿔봐서 http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=44827 로 들어가봅시다. and the next nothing is 45439 가 나옵니다. 한번 더 숫자써보면 너 손아플꺼야.. 라고 나옵니다. 노가다문제네요. 파이썬으로 짜면. 파이썬으로 짤 시에 항상 is뒤에 숫자가 나오는걸 감안해서 is뒤의 값을..

파이썬챌린지.com 3

http://www.pythonchallenge.com/pc/def/equality.html하나의 소문자가 정확히 3개의 대문자 사이에 있다. 그러면 소문자 1개,대문자3개, 소문자1개 대문자3개 소문자 1개 이리 있다는 소리 같습니다. #정규식 모듈 re # -*- coding: euc-kr -*- import urllib2,re req = urllib2.Request('http://www.pythonchallenge.com/pc/def/equality.html') res = urllib2.urlopen(req) reads = res.read() str = re.findall('[a-z][A-Z]{3}([a-z])[A-Z]{3}[a-z]',reads) answer = '' for i in range(0..

파이썬챌린지.com 2

http://www.pythonchallenge.com/pc/def/ocr.html 문자를 찾아라. 아마도 그것들은 책에 있거나 아니면 아마도 그것들은 페이지 소스에 있을것이다. 보나마나 소스에 있겠죠 뭐. 헙. 페이지 소스에 엄청나게 많은 이상한 기호들이 나타나며 그사이에서 문자를 찾으란다. 중략했지만 끝 줄번호가 1257까지 이런 이상한 문자가 이어짐. 저기 저 주석 사이에서 알파벳을 찾으면 된다. 쉽다. 맨날 쓰는 urllib2으로 짜면 됨. # -*- coding: euc-kr -*- import urllib2 req = urllib2.Request('http://www.pythonchallenge.com/pc/def/ocr.html') res = urllib2.urlopen(req) reads ..

파이썬챌린지.com 1

http://www.pythonchallenge.com/pc/def/map.html 0번이 너무 간단해서 1번도 이것만 보고는 아래의 문자열을 k를 m으로, o를 q로, e를 g로 바꿔줬는데 아무 의미가 없는 글자다.. 곰곰히 계속보니 k에서 두글자 뒤가 m( k l m), o에서 두글자뒤가 q,( o p q) e에서 두글자 뒤가 g이다. (e f g) 나머지도 다 바꿔주면 되는건가? str = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamk..

파이썬챌린지.com 0

해킹 문제 아닙니다. 어디서 돌아다니다 찾아낸 파이썬 프로그래밍 관련 문제입니다.http://www.pythonchallenge.com/index.php가 원 주소입니다.Click here to get challenged를 눌러서 한번 문제를 풀어보도록 하죠... http://www.pythonchallenge.com/pc/def/0.html 가 문제 주소이고 url주소를 저 힌트?에 관해서 바꾸라네요? 2^38승 계산하란 소리인가요?print 2**38결과로 나온 274877906944 로 바꾸면 됩니다.. 처음이라 그런지 쉽네요.http://www.pythonchallenge.com/pc/def/274877906944.html

rubiya님의 문서

http://hackerschool.org/Sub_Html/HS_Posting/index.html?uid=43루비야님이 적은 sql 인젝션 문서. 엄청나게 좋은 꿀팁이기에 주소 남깁니다.웹해킹 하시는 분이면 반드시 끝까지 다 익힙시다. 이렇게 잘 정리된 한글 문서도드물다고 볼 수 있습니다.이 문서 올린 팀에 가서 주섬주섬 돌아다니다 보면 진짜 감탄사 나올 문서나 꿀팁이 많아요... 여기저기 찾아서 돌아다녀보시기 바랍니다. SQL Injection for Expert 목차* 이 문서는 어떻게 작성되었는가? * SQL Injection Filter Bypass * , Array 변수를 사용한 SQL Injection * Error Based SQL Injection * Error Based Blind SQL..

webhacking.kr 12번

소스코드보면 자바스크립트 문제. 끝에 eval함수로 암호화된 구문을 실행시킵니다. 그러면 eval로 실행시키기 이전 구문만 크롬 개발자도구에 갖다붙이면 알아서 해석해줍니다. 해석된 구문을 다시 해석해야됩니다. 맨 아래의 복잡한 if문에서 결과가 맞으면 alert로 password를출력해주세요. if부분이 중요한걸 알았으니 if부분을 출력해보면 됩니다. document.write로 직접 출력해보죠. 이렇게 if문만 document.write로 바꾸고 아래 중괄호를 없앴는데 false가 뜨네요. 내부를 자세히 살펴보니 ck==으로 비교합니다. 다르니까 false가 뜨겠죠. ck는 이따 어떻게든 바꾸기로 하고 ck를 빼고 한번 출력해보겠습니다. =youaregod~~~~~~~! 가 출력됩니다. ck가 저거랑 ..

webhacking/client 2014.08.15