• Docs

    strtoupper(<ſcript>)

    해당 문서는 위의 트윗을 보고 추가적인 연구를 진행해 Theori 내부 세미나에서 발표한 결과물이다.(사장님 허락받고 올린다) (%C4%B1) 는 LATIN SMALL LETTER DOTLESS I를, (%E2%84%AA) KELVIN SIGN을, (%C5%BF) 는 LATIN SMALL LETTER LONG S를, (%C4%B0) 는 LATIN CAPITAL LETTER I WITH DOT ABOVE 를 의미한다. 그런데 자바스크립트 환경에서 %C4%B1를 touppercase() 하면 == “I”가, %c5%bf를 touppercase()하면 == “S”가 되고, %E2%84%AA 를 tolowercase() 하면…

  • WriteUp

    holyshield 2012 Web1 writeup

    Web1 서버는 iis 7.5버전이 설치되어 있었고 ‘This website has been attacked. So, password link is missing now’ 즉, 패스워드 링크를 찾는게 문제였기에 IIS Short File/Foder Name Disclosure 라는 취약점으로 삽질을 했다. 관련 문서 : http://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf /ip/admin/*~1*/.aspx 로 접속했을때 Error Code 0x00000000 가 뜨는것으로 보아 admin디렉토리에 1개 이상의 파일이나 폴더가 존재한다는것을 알 수 있었고 /ip/a*~1*/.aspx /ip/b*~1*/.aspx /ip/c*~1*/.aspx 처럼 한 글자씩 bruteforce해서…

  • WriteUp

    suninatas.com sqli vuln

    suninatas.com 사이트가 처음 만들어졌을때 일체의 시큐어코딩이 적용되지 않아서 sqli, 파일다운로드 공격을 성공해서 Hall of fame 에 이름을 올렸었다. 그런데 올해 초에 다시 한번 SQL Injection 을 성공했는데 mssql 환경에서의 공격경험이 재미있었던지라 공격 과정을 포스팅하겠다. 취약점은 QnA 게시판의 글 수정 기능에서 터진다. 글 수정을 눌러보면 http://suninatas.com/board/view.asp?licen=add_del&idx=2592&num=313&divi=Free 이렇게 뜨는데 idx 인자를 조작이 가능하다. mssql은 서로 다른 타입의 값을 비교해주면 앞의 인자를 에러메세지에서…

  • WriteUp

    webhacking.kr sqli vulns

    45번 문제의 소스다 $_GET[id]=mb_convert_encoding($_GET[id],’utf-8′,’euc-kr’); $data=@mysql_fetch_array(mysql_query(“select id from members where id=’$_GET[id]’ and pw=md5(‘$_GET[pw]’)”)); if(eregi(“admin”,$_GET[id])) exit(); if(eregi(“from”,$_GET[id])) exit(); if(eregi(“union”,$_GET[id])) exit(); if(eregi(“limit”,$_GET[id])) exit(); if(eregi(“union”,$_GET[pw])) exit(); if(eregi(“pw”,$_GET[pw])) exit(); if(eregi(“=”,$_GET[pw])) exit(); if(eregi(“>”,$_GET[pw])) exit(); if(eregi(“”,$_GET[pw])) exit(); if(eregi(“

  • WriteUp

    wechall.net logical bug

    wechall.net은 많은 워게임들을 연동시켜서 점수를 추합해 순위를 매겨주는 사이트이다. 연동을 위해서는 wechall.net 서버에서 각 워게임의 유저의 점수를 알 수 있어야 한다. 그때문에 연동할 워게임에서는 userscore.php 라는 파일을 만들고, wechall.net 서버에서 오는 요청에 응답하는 코드를 넣는다. 예를들자면 webhacking.kr 이라는 워게임의 rubiya / rubiya805@gmail.com 계정을 wechall.net에 등록하려 할 경우에 아래와 같은 순서를 거친다. 1. 내가 wechall.net에 webhacking.kr / rubiya / rubiya805@gmail.com 라는…

  • WriteUp

    2016 Whitehat Contest Final writeup

    침해대응은 2문제가 출제되었고 문제당 서버 1대씩을 각 팀에게 지급했다. 자신의 서버의 취약점을 찾아내 Flag를 인증하면 ssh계정을 주어 패치가 가능하고, 다른팀의 패치가 안된 서버를 공격해 추가득점이 가능하다. —- 경상북도 문제는 회원가입, 로그인, 사진올리기 기능이 있다. $uploadfile = $uploaddir . basename($_FILES[‘ufl’][‘name’]); if (move_uploaded_file($_FILES[‘ufl’][‘tmp_name’], $uploadfile)){ 사진을 올릴 때 별도의 필터링이 없으니 webshell upload가 가능하다. 다들 간단히 취약점을 찾아내어 인증하고 패치했다. 그런데 사실 나는…

  • Docs

    RCE by lfi using php session file without angle bracket

    개요 lfi는 local file include 의 줄임말로 공격자가 원하는 파일을 include 시킴으로써 소스코드를 leak하거나 임의의 코드를 실행시키는것이 목적이다. include를 통해 원하는 코드를 실행시키려면 payload가 담긴 파일이 서버내에 있어야 한다. ( 서버 외부에 있다면 remote file include 공격으로 분류하며 해당 기법은 서버 설정을 심하게 탄다. ) /proc/self/environ, access_log, error_log 등 다양한 방법이 제시되었으나 권한, 셋팅등의 이슈로 성공률이 희박해 좋은 대안이 되지…

  • WriteUp

    Secuinside2017 MyGF write-up

    else if($page == “read”){ $col = addslashes($_GET[‘col’]); $col = preg_match(“/^no$/ismU”,$col) ? $col : “”; There is SQL Injection vuln at read page because of m modifier We can get encrypted content like this. http://ip/?page=read&col=no%0a=0%20union%20select%201,content,3,4%20from%20board%20where%20no=1%23&no=1​ We need aeskey but mysql user board can’t access aeskey database. $contentdec = mysql_fetch_array(mysql_query(“select *, aes_decrypt(unhex(content),unhex(‘”.$aeskey[‘aeskey’].”‘)) as plain from(select * from board.board join member.members) as a…

  • WriteUp

    webhacking.kr stored xss vuln

    webhacking.kr의 48번 문제 (http://webhacking.kr/challenge/bonus/bonus-12/ ) 는 파일 삭제 과정에서 불충분한 유저 입력 검증으로 인한 OS command injection 을 다루는 문제입니다. 해당 문제 내에서 “운영자가 의도하지 않은 취약점을 이용한 Stored XSS 공격”이 가능합니다. get index.php’s source code 문제 내에서 파일을 업로드하고 코멘트를 달게되면 자동으로 아이콘이 추가됩니다. 해당 아이콘은 닉네임의 길이에 따라서 3.jpg, 4.jpg, 5.jpg 등의 이름을 가지게 됩니다. 그런데 여기서 1.jpg에…