일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 신경망파이썬
- 버퍼오버플로우
- BOF
- 정보보안
- 알고리즘
- 머신러닝
- 백준알고리즘
- 스트림암호
- c언어
- 신경망 학습
- C언어알고리즘
- 신경망
- 활성화함수파이썬
- 소프트맥스함수
- 인공지능
- 신경망구현
- 딥러닝
- 파이썬신경망
- 딥러닝파이썬
- 파이썬
- FTZlevel10
- 달고나bof
- 8086CPU레지스터
- C알고리즘
- 백준
- 보안
- C언어 알고리즘
- BOJ
- 밑바닥부터시작하는딥러닝
- 항등함수
- Today
- Total
목록<CTF> (95)
HeeJ's
문제 화면 소스코드 $ip = $REMOTE_ADDR; //ip 변수에 $REMOTE_ADDR 값 저장 $agent = $HTTP_USER_AGENT; //agent 변수에 $HTTP_USER_AGENT 값 저장 if($REMOTE_ADDR){ //REMOTE_ADDR 값이 존재한다면 $ip = htmlspecialchars($REMOTE_ADDR); //REMOTE_ADDR의 값에서 특수 문자를 html로 변환해 재저장 $ip = str_replace("..",".",$ip); //ip의 값에서 ..을 .로 치환 $ip = str_replace("12","",$ip); //ip의 값에서 12를 공백으로 치환 $ip = str_replace("7.","",$ip); //ip의 값에서 7.을 공백으로 치환..
문제 화면 SQL INJECTION문제이다. 코드의 result부분을 보면 id가 admin이면 문제가 해결되는 것 같다. 또한 공백 / * % 0x select limit cash 등이 필터링되는 것을 확인할 수 있다. lv 값도 GET방식으로 받아준다. 위의 필터링되는 문자들을 사용하지 않고 get방식으로 url에 admin이라는 id를 넣어주면 된다. admin은 char함수를 이용해 넣어주면 해결될 것이다. admin = char(97,100,109,105,110) 이 값을 입력 칸에 넣고 제출해주면 문제를 해결할 수 있다.
문제 화면 javascript를 이용한 문제인 것을 알 수 있다. 소스코드를 확인하면 이모티콘들로 이루어진 것을 확인할 수 있다. 이 이모티콘들을 디코딩해주는 사이트를 찾아 전부 디코딩해보았다. 디코딩 사이트; cat-in-136.github.io/2010/12/aadecode-decode-encoded-as-aaencode.html 위의 코드를 사용해 문제를 풀어주면 된다. 이 함수가 나타내는 값을 알기 위해 if문을 제거한 함수를 콘솔 창에 입력해주었다. 그러면 위와 같은 값이 나타나고, 이 값을 url에 넣어주면 문제를 해결할 수 있다.
문제화면 소스코드를 확인해주었다. 문제 solve 조건은 result가 0이 되는것, 즉 where이 true가 되어 1을 반환하게 해야한다. where구문을 살펴보면 id부분이 제대로 닫혀있지 않은 것을 확인할 수 있다. '를 입력값으로 주게되면, 처리 과정에서 2개의 싱글 쿼터로 치환하게 되는데, substr함수에서 앞의 15문자만 잘라내는 것을 확인할 수 있다. 그래서 입력값을 admin+(공백9)+'를 준다면 문제가 해결된 것을 확인할 수 있다.
문제 화면 소스코드를 확인해주었다. if(preg_match("/\*|\/|=|select|-|#|;/i",$_GET['phone'])) exit("no hack"); //phone에서 필터링되는 문자들 if(strlen($_GET['id']) > 5) exit("no hack"); //id의 크기가 5를 넘으면 안된다. if(preg_match("/admin/i",$_GET['id'])) exit("you are not admin"); //id에 admin이 들어갈 수 없다. id, ip, phone 순서로 쿼리를 전송한다. Insert문의 values를 사용한 것을 보아 여러 개의 데이터를 한 번에 삽입할 수 있다. solve의 조건은 isAdmin['ip']값과 SERVER['REMOTE_ADDR'..
문제화면에서 간단한 nonogram 문제가 나와있어 로직을 먼저 풀어주었다. 로직을 풀어주고 solved 버튼을 누르면 이런 문구가 뜬다. 여기서 바로 소스코드를 확인해주었다. 12번째 줄의 조건문을 참으로 만들어주고, 뒷 부분을 주석처리해주면 문제가 해결될 것으로 보인다. 개발자도구를 이용해 소스코드를 수정해주었다. 조건문의 뒷 부분에 or 1=1을 넣어 식이 참이 되게 해주었고, 나머지 뒷 부분은 #를 이용해 주석처리 해주었다. 그리고 submit을 눌러주면
문제 화면이다. 소스코드들 중에서 눈에 띄는 부분을 캡쳐한 것이다. 이 코드들을 읽어보면, if($_COOKIE['user_lv']>=6) $_COOKIE['user_lv']=1; //쿠키 값이 6이 넘어가면 1로 셋팅된다. if($_COOKIE['user_lv']>5) solve(1); //쿠키의 값이 5가 넘으면 문제 해결 그렇기 때문에 쿠키의 값을 5보다 크고 6보다 작은 값으로 설정해주어야한다. 여기서 사용한 툴은 'edit this cookie'이다. Chrome(크롬)의 확장 프로그램이며, 이하의 사이트에서 다운받을 수 있다. chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?hl=ko EditTh..
Webhacking.kr 27번 문제 화면 이 문제도 Webhacking.kr 18번과 비슷하게 SQL Injection을 이용한 문제이다. 이 문제도 소스코드 먼저 읽어주었다. if($_GET['no']){ //get방식으로 no를 입력받고 $db = dbconnect(); //파일과 DB를 연결한다. if(preg_match("/#|select|\(| |limit|=|0x/i",$_GET['no'])) exit("no hack"); //위의 문자들(select, limit 등)이 입력되면 필터링을 하고 no hack을 출력하며 종료한다. $r=mysqli_fetch_array(mysqli_query($db,"select id from chall27 where id='guest' and no=({$_G..