728x90 분류 전체보기720 PHP - shell_exec 함수로 파이썬 실행하고 한글이 안나오는 경우 putenv('PYTHONIOENCODING=utf-8'); 추가 putenv('PYTHONIOENCODING=utf-8'); $data = shell_exec('python3 app.py'); or $data = shell_exec('PYTHONIOENCODING=utf-8 python3 app.py'); 출처: https://trytoso.tistory.com/1543 php exec 사용하여 파이썬 호출후 한글이 안나올때 제목 그대로 아래와 같이 php 에서 파이썬 파일을 호출한다. 하지만 아래와 같은 오류가 계속 발생 Traceback (most recent call last): File "/home/naya/easyOCR-binary-centos-main/tests/php_client.py", .. 2023. 2. 18. pwnable.kr - fd 문제를 클릭하면 ssh를 접속할 수 있는 명령어가 있으니 복사해서 cmd에서 잘 입력한다. 비밀번호는 (guest) 호스트에 접속을 하고 파일 목록을 확인하였는데 내가 찾고 싶어 하는 flag가 보인다. 하지만 flag는 fd_pwn이라는 유저만 열어볼 수 있게 권한이 설정되어 있었음(현재 내 이름은 fd) 파일들 중에서 fd에는 setuid가 설정이 되어있기 때문에 어드민 권한으로 프로그램을 실행시키는 게 가능하다. 마침 fd의 소스 코드로 보이는 fd.c의 내용물을 살펴본다. fd.c의 내용물을 확인하면 사용자로부터 숫자를 입력 받는데 int fd = atoi( argv[1] ) - 0x1234; 2023. 2. 16. WeChall - Training: Net Ports 현재 페이지에서 42번 포트로 접속을 하라고 한다. 아래에는 현재 내가 접속한 포트 번호가 적혀있으며 이는 매번 새로 고침 할 때마다 바뀔 수 있다. import requests from requests.adapters import HTTPAdapter from requests.packages.urllib3.poolmanager import PoolManager class SourcePortAdapter(HTTPAdapter): """"Transport adapter" that allows us to set the source port.""" def __init__(self, port, *args, **kwargs): self._source_port = port super(SourcePortAdapter.. 2023. 2. 16. webhacking.kr - old-04(Challenge 4) 첫 화면은 어떤 해시값이 써져 있고 아래에는 비밀번호를 제출하는 곳이 있다. [view-source]를 눌러 소스코드를 확인해 본다. if((isset($_SESSION['chall4'])) && ($_POST['key'] == $_SESSION['chall4'])) solve(4); 사용자로 부터 key(비밀번호)를 입력을 받으며, chall4 세션과 일치하면 solve(4)를 실행한다. 제일 중요한 아랫부분을 살펴보면 $hash = rand(10000000,99999999)."salt_for_you"; 10000000~99999999까지의 랜덤의 정수를 가져와서 "salt_for_you"라는 솔트를 합친다. 그래서 이 "랜덤숫자_salt_for_you"는 chall4 세션에 할당한다. for($i=0.. 2023. 2. 15. webhacking.kr - old-20(Challenge 20) 2초 안에 닉네임, 코멘트, 캡챠 폼을 채우고 보내지 않으면 "Too Slow..."라는 페이지가 나오면서 다시 입력 페이지로 리다이렉션 된다. (function() { 'use strict'; document.querySelector("[name='id']").value="test"; document.querySelector("[name='cmt']").value="hello!"; lv5frm.captcha.value = lv5frm.captcha_.value; ck(); })(); 나 같은 경우는 브라우저 확장 도구를 통해서 해당 페이지에 접속하면 알아서 스크립트가 실행되게 만들었다. 그랬더니 페이지에 들어가면 순식간에 입력 후 제출이 되면서 해결이 되었다. 2023. 2. 15. webhacking.kr - old-11(Challenge 11) view-source view-source 사용자로부터 val이라는 이름의 GET 파라미터를 입력받는다, 만약에 아래의 정규표현식에 참의 결과가 나오면 정답처리 /[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/ $_SERVER[REMOTE_ADDR]는 접속자의 아이피를 가져오기 때문에 아이피 확인 사이트(https://ip.pe.kr/ )에서 자신의 주소를 찾고, 나머지 정규표현식들이 만족하게끔 값을 추가하면 된다. 아래의 연습 사이트에서 정규표현식 조건을 넣어서 직접 확인해 보았다. https://regexr.com/ RegExr: Learn, Build, & Test RegEx RegExr is an online tool to learn, build, &.. 2023. 2. 15. TryHackMe - Simple CTF (1) Writeup 1번 질문. 1000번 포트 아래에서 실행 중인 서비스는 모두 몇 개입니까? sudo nmap -sS -sV -T4 -p 1-1000 Nmap 명령어로 1~1000 포트에서 실행되는 서비스를 스캔해 본다. 21/tcp (FTP)80/tcp (HTTP)이렇게 두 개가 나왔으므로 정답으로 "2"를 입력 2번 질문. 상위 포트에서 실행되는 것은 무엇입니까? 높은 포트번호에서 실행되고 있는 서비스를 묻는다. 방금은 1000까지 스캐닝을 해주었으니 1001부터 이번엔 3000까지 스캔 sudo nmap -sS -sV -T4 -p 1001-3000 2222/tcp (SSH)그랬더니 2222번 포트로 운영 중인 OpenSSH가 발견 정답으로 "ssh"를 입력 3번 질문. 애플리케이션에 대해 사용 중인 .. 2023. 2. 14. Oracle Cloud - 특정 포트 방화벽 해제(iptables, firewall-cmd) iptables 정책 생성 sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT iptables 정책 확인 sudo iptables -L -n -v --line-number iptables 라인 번호로 정책 삭제 sudo iptables -D INPUT 1 firewall-cmd sudo apt install firewalld sudo firewall-cmd --zone=public --permanent --add-port=80/tcp sudo firewall-cmd --reload 방화벽 규칙 영구 지속 sudo apt install netfilter-persistent -y sudo netfilter-persistent save 출처: https://stack.. 2023. 2. 12. TryHackMe - OpenVPN 에러 해결 방법 (Failed to open tun/tap interface) 자신의 *.ovpn 파일을 열어서 "cipher AES-256-CBC"를 "data-ciphers AES-256-CBC:AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305"로 수정하고 저장하고 실행한다. data-ciphers AES-256-CBC:AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305 vim으로 수정하기:%s/cipher AES-256-CBC/data-ciphers AES-256-CBC:AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305/g 출처: https://tryhackme.com/forum/thread/62bb0daf19e588005b7b1739 TryHackMe | Cyber Security Training.. 2023. 2. 12. 프라이버시 - Ncat 특정 포트 터널링 with i2p 접속 Ncat에도 특정한 포트를 포워딩하는 것이 가능하다. https://janger.tistory.com/161 리눅스 - SSH 터널링을 이용하여 특정 포트를 포트 포워딩 로컬(Local)에서 원격 서버(Remote) 접속, 원격 서버의 포트를 포워딩 ssh -L 8080:127.0.0.1:80 server_username@server_ip - 클라이언트가 localhost:8080으로 접속하면 서버의 80번 포트(웹 서버)로 접속이 되게끔 원 janger.tistory.com 예를 들어 서버만 접속할 수 있는 localhost:4444(i2p router)를 외부에서 접속하고 싶을 경우 전제 조건으로 서버에 외부에서 접속할 수 있는 포트가 미리 포워딩이 되어 있어야 함(나는 4545로 설정) 터널링 명령.. 2023. 2. 11. 프라이버시 - Ncat으로 HTTP 프록시 실행 SSH에서 하던 짓을 ncat으로 한번 해본다. https://janger.tistory.com/702 프라이버시 - SSH를 이용한 프록시(Dynamic Port Forwarding, Socks) ssh -D 8080 -N server_username@server_ip -N: 원격 시스템에 명령을 실행하지 않는다. (명령어행 띄우지 않기) -D: 'D'ynamic, (SOCKS4, 5 Proxy) 이를 이용하면 프록시 서버를 경유해서 오직 LAN에서만 접근 가능한 janger.tistory.com 명령어 ncat -l 4545 --proxy-type http ncat -l 4545 --proxy-type http --proxy-auth : 프록시를 제공하는 서버는 따로 공유기에서 포트 포워딩을 해준다... 2023. 2. 11. 프라이버시 - SSH를 이용한 프록시(Dynamic Port Forwarding, Socks) ssh -D 8080 -N server_username@server_ip -N: 원격 시스템에 명령을 실행하지 않는다. (명령어행 띄우지 않기) -D: 'D'ynamic, (SOCKS4, 5 Proxy) 이를 이용하면 프록시 서버를 경유해서 오직 LAN에서만 접근 가능한 공유기에도 접근이 가능도 하다. 출처: https://shanepark.tistory.com/266 SSH를 이용한 Proxy, Dynamic Port Forwarding (SOCKS) Dynamic Port Forwarding 을 이용하면 ssh client의 로컬에 SOCKS 프록시 서버로 동작하는 소켓을 만들 수 있습니다. 클라이언트가 해당 포트에 접속하면, 그 연결은 리모트(ssh server) 머신으로 포워딩 되며, shanep.. 2023. 2. 11. 이전 1 ··· 21 22 23 24 25 26 27 ··· 60 다음 728x90