분류 전체보기 299

[C++] vector 정렬/안정정렬, vector 중복요소 제거, pair 자료형

pair 자료형 - utility 헤더 선언 필요, 그런데 및 헤더에 포함되어 있어 별도 선언 필요 x vector v; int N, x, y; cin >> N; while(N--) { cin >> x >> y; v.push_back(make_pair(x,y)); } cf) python이었으면? 배열을 원소로 가지는 배열을 생성하면 되겠지 vector 정렬 - compare 함수를 별도로 정의하여 sorting 기준 명시 - compare 함수 파라미터로 const + &(참조, Referece) 조합 사용 // 상수성, 메모리 절약 bool compare(const pair& p1, const pair& p2) { if(p1.first == p2.first) return p1.second < p2.se..

BOJ 2023.08.11

NGINX 이용해 내 PC를 웹서버로 만들기

https://cowhacker.tistory.com/87 // 공유기, 가상머신 포트포워딩 설정부터 ip 세팅까지 다 설명해줌 (감사합니다감사합니다) https://phsun102.tistory.com/47 // 리버스 프록싱 설정 기본 개념 외부 Network에서 내 공유기의 공인(외부) ip로 접근 ↓ ( 공유기 포트포워딩하여 내부 ip로 접근) 내 데스크탑 ipconfig /all ↓ ( Vmware에서 가상 게이트웨이 역할을 하는 VMnet8 [NAT] 를 이용해 포트포워딩, 우분투 가상머신 내부 ip로 접근 ) Ubuntu 22.04 Vmware 가상머신 ifconfig Nginx 웹 서버 동작중 ↓ ( 특정 포트에서 동작중인 nodejs application으로 리버스 프록시) pm2 (no..

web/기타 2023.07.30

[Dreamhack Wargame] Apache htaccess

파일 업로드 공격 1. .htaccess 이용 - 아파치 (Apache) 웹 서버는 일반적으로 /etc/apache2 또는 /etc/httpd 디렉터리에서 설정 파일을 관리 - AccessFileName 지시어를 사용해 설정 파일을 분산하여 관리할 수 있음, 기본적으로 .htaccess로 설정되어있음 root@ubuntu01:~# cat /etc/apache2/apache2.conf | grep ^AccessFileName AccessFileName .htaccess [root@centos01 ~]# cat /etc/httpd/conf/httpd.conf | grep ^AccessFileName AccessFileName .htaccess - .htaccess(hypertext access) 파일 = 분..

security/웹해킹 2023.07.17

[Dreamhack Wargame] Command Injection Advanced

PHP escapeshellcmd() 함수 우회 1. escapeshellcmd() 함수에 대해 - 메타 문자를 통한 커맨드 인젝션을 방지하기 위해 php에서 사용하는 함수 - 쉘 명령을 속이는 데 사용될 수 있는 문자열의 모든 문자를 이스케이프한다 - 다음 문자 앞에 백슬래시를 붙인다 : & # ; ` | * ? ~ ^ ( ) [ ] { } $ \ , \x0A \xFF ' " (따옴표는 쌍이 아닌 경우만) cf) escapeshellarg()는 전달한 입력값을 하나의 문자열로 만들어버림 2. 취약점 메타문자를 활용한 커맨드 인젝션은 불가능하다, 실행하려는 명령어의 옵션은 조작할 수 있다 php > var_dump(escapeshellcmd("a -h -d -e")); string(10) "a -..

security/웹해킹 2023.07.15