본문 바로가기

Study

뉴비를 위한 iOS 분석 첫걸음 (2012.12.06) 예엣날에 작성한 기술문서를 발견하여 포스팅해봅니다. 요새는 각종 보안패치가 되어있어 참고용으로만 봐주시면 좋겠습니다. 더보기
메인접속시 가장 최근에 수정한 jsp파일로 자동 접속하기 이전글(netstat.tistory.com/43)과 같은 이유로 작성하게되었다. eclipse에서 Dynamic Web Project를 만들고 만들시 Context root 경로를 "/" 로 지정한다. WebContent 폴더안에 아래와 같은 index.jsp 파일을 만들고 서버설정을 완료하면 이후 서버루트 경로(http://localhost:8080/)에 접근시 가장 최근에 수정된 jsp파일로 접속되게된다. 더보기
[php] 메인접속시 가장 최근에 수정된 파일로 자동 접속하기 index.php를 아래와 같이 설정해주면 된다. 디버깅 작업시 일일이 파일경로를 입력하지 않아도 되어 유용하다. 원출처: stackoverflow.com/questions/9371944/php-how-to-get-most-recent-file-from-directory-and-subdirectories PHP - how to get most recent file from directory AND subdirectories I have used the following script to correctly display ALL files from the selected directory and its sub-directories. Does anyone know how to modify this code o.. 더보기
[JDBC]PreparedStatement의 동적 쿼리출력 PreparedStatement를 이용하여 동적sql객체 생성시 보내지는 쿼리문을 알 수 없어 디버깅시 불편하기에 보내지는 쿼리문을 invoke를 이용하여 재구현해보았다. log4sql 라이브러리를 설치하는 방법이 있으니 여기선 Reflection api활용을 연습하기위해 생략한다. import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.. 더보기
Google Text to Speech Bypass 언제부터인진 모른다. 옛날에 만들었던 코드가 동작안하길래 다시분석해봤더니 tk(토큰?)값과 client값이 필요하다.제대로 안넣으면 친절하게 403에러를 뛰우기때문에 API갖다 쓰듯이 편리하게 사용했던 기존코드를 못쓰게 되었다.def audio(word): url='http://translate.google.co.kr/translate_tts?ie=UTF-8&tl=ja&q=' if type(word) is unicode : url += quote(str(word.encode('utf-8'))) req = urllib2.Request(url,headers={'User-Agent' : 'AppleWebkit'}) try : return Response(urllib2.urlopen(req).read(), co.. 더보기
[POC 2013] Power of xx 여성해킹대회 본선 Pwning CGI (250) Write-up 어쩌다보니 이번에 처음으로 CTF 문제출제를 하게 되었습니다. 사진찍으며 글쓰는방법이 오래 걸리는 관계로 동영상을 준비했습니다. 중간부터 졸면서 촬영해서.. 이상한부분과 다소 속도가 느린점 양해 바랍니다. 내부에서 언급이 살짝 덜된부분이 있는거 같은데 query_string은 url에서 ?뒤에 들어가는 인자입니다. 문제는 점심시간쯤 공개하였습니다. 대회 때 서버를 백업으로 총 두서버를 돌렸으며, 중간에 몇가지 힌트를 제공했습니다. 뒤에 편집미스로.. 더미시간이 남아있는데 영상은 41분가량이 끝입니다. , 여담이지만 대회기간중 access.log와 error.log와 /tmp/id를 모니터링하였는데 200회이상 방문한팀은 두팀정도 있던거 같습니다. egg라 이름붙인 함수는 easter egg의 약자로 원래.. 더보기
FTZ 풀이보고서 제 옛날글을 뒤지다가 언제 기회되면 풀이보고서 올리겠다고 했는데 여태껏 안올린게 떠올랐습니다.마침 몇달전 밥과제로 풀어봐라 했을때 작성한 보고서가 있어서 올립니다. BOF외에도 (이젠 다시 가물가물해진)FSB등의 다양한 기법들이 있으니 BOF 원정대 풀이보고서보다 볼만한 부분이 많을 것입니다. 더보기
backdoor #2 hide the setuid file(setuid 파일 숨기기) 요번엔 저번시간에 만들어진 setuid파일을 숨겨보겠습니다. 새로 백도어를 설치하는방법과 서버에 있는 setuid파일을 이용하는 방법이있는데요. 이미 있는파일을 백도어로 만드는 것이기 때문에 안전성이 높다 생각되어 후자쪽을 택했습니다. 우선 백도어를 숨길곳을 찾아봅시다. $find / -perm -4000 2>/dev/null 일반 유저가 당연 실행할수있는 경로에 위치한 setuid파일이어야 하기때문에 일반유저의 권한으로 진행합니다. 저는 passwd나 su, sudo, chown, chmod 같은것들과 달리 자주쓰이지 않으면서 초기에도 서버에있는 파일을 골랐습니다. 바로 pt_chown입니다. 지난시간의 백도어는 실행하면 바로 쉘이 떨어진다는 문제가 있기때문에 약간 그럴듯한 파일로 바꾸는 작업이 필요합.. 더보기
backdoor #1 간단한 위장 백도어 생성 후기 오랫만에 친구서버에 접속한 저는 루트가 갖고 싶어졌습니다. 제가 루트를 따더라도 그걸 보여주면 좋아하는 친구이니 누이좋고 매부좋은 일임으로.. (선례가 있었습니다.) (이와 같이 사전에 해당 서버 주인의 허가를 받고 일종의 모의해킹을 해주는일은 아주 좋은 일입니다.) 당장 저번에 포스팅한 Metasploit을 이용하여 취약점을 점검하였지만 커널도 최신이요 취약한 서비스도 없으무니다. 이럴때 좋은방법은 무엇일까요? 곰곰히 생각해보았습니다. 생각한 결과는 바로 위장술이었습니다. 일단 처음 착안한 아이디어는 이렇습니다. 누구나 실행할만한 파일을 만들자. (편리하거나 재미있는 기능이 들어간 파일, 꼭 필요한 파일, 누구나 한번쯤 실행해보는 파일, 주인이 열어보고싶게되는 파일) 일종의 사회공학적인 부분도 있습니다.. 더보기
md5 hash collision 어떤 해쉬 알고리즘이라도 비둘기 집의원리에 의해 해쉬 테이블에서 가능한 모든 키의 숫자는 테이블 인덱스의 개수보다 많으므로 충돌은 불가피하다합니다. 아래 예제 소스를 통해 알아보죠. ''' Created on 2012. 9. 7. @author: Administrator ''' import base64 import md5 str1 = base64.b64decode("pmTquIkEwqxIQ0EOCmNCVBZgbIFELdaNQARYPrj7f4lVrTQGCfSzAoPkiIMlcUFaCFEl6PfNyZ/ZHb3ygDc8W5eevbQOKm4XpiNXJNHfQbRGc/mW8WJK3RApMWfQCbGPdad/eTDZXOsC6K26eshVXO10yt1fyZNtsZtK2DXMZ+M=") str2 = base64.b64.. 더보기