[웹프로그래밍과 PHP] 4. 반복문(while,for)
프로그래밍에서 조건문만큼 많이 쓰이는 것이 반복문이다. 반복문을 사용하면, 효과적으로 반복해서 공격을 수행하는 프로그램을 만들 수도 있으며, 불필요한 조건문의 반복 사용을 줄일 수도 있다.
PHP의 반복문으로는 while()문과 for()문이 있다. 두 반복문 모두 임의의 변수에 값을 설정한 후, 값을 증가 혹은 감소시켜 특정 조건이 만족할 때까지 반복하게 하는 구조로 되어 있다. 이를 루프(loop) 구조라고 한다.
루프 구조에는 보통 세 가지 요소가 온다. 첫째는 임의의 변수에 초기값을 할당하는 초기 표현식이다. 일반적으로 초기 표현식에는 $i=1처럼 숫자가 오지만, 여러 가지 방식으로 응용이 가능하다. 둘째는 초기 표현식을 증가시키거나 감소시키면서 반복 count를 셀 수 있게 해주는 증감문이다. 일반적으로 $i++, $i--가 많이 오는데, 이 역시 여러 가지 방식으로 응용할 수 있다. ++는 하나를 증가하라는 뜻이고, --는 하나를 감소시키라는 뜻이다. 윗몸 일으키기를 100번 반복한다고 했을 때, 1부터 100까지 차례대로 숫자를 올리면서 횟수를 세는 방식이 있고, 100부터 1까지 숫자를 내리면서 횟수를 세는 방식이 있다. 올리면서 횟수를 세는 방식이 ++이고, 내리면서 횟수를 세는 방식이 --이다. 마지막으로 루프를 탈출할 조건이 와야 한다. 윗몸 일으키기 100회라는 조건을 걸지 않으면, 반복문은 무한 루프가 된다. 따라서 $i<101이면, 루프 구조를 빠져나가라는 조건 표현식이 와야 한다.
아래는 SQL injection 구문을 출력하기 위한 While문이다.
<?php$data=1; //초기 표현식
while ($data<=10){ //루프 탈출 조건문
print "$data' and 1=1--\n"; //SQL injection 구문 출력
$data++; //증감문
}
?>
위 반복문을 실행한 결과는 아래와 같다.
while문은 if문과 형식이 비슷하다. while()안에 오는 조건문이 참이면, 반복문을 실행하고, 조건문이 거짓이면, 반복문을 빠져나온다.
위의 while문은 for문으로 변경할 수 있다.
for문의 기본 형식은 아래와 같다.
for(초기 표현식;루프 탈출 조건문;증감문)
따라서 위의 while문을 아래처럼 for문으로 바꿀 수 있다.
<?phpfor($data=1;$data<=10;$data++){ //for문
print "$data' and 1=1--\n"; //SQL injection 구문 출력
}
?>
for문을 실행하면, while문과 같은 결과가 출력된다.
이 내용은 칼리!도커를해킹하다 2부의 아주 일부입니다. 책에서 더 자세히 다룹니다. 2부는 2019년 6월 출간 예정입니다.
칼리!도커를해킹하다 1부는 2부를 공부하기 전에 알아야 할 내용으로 이미 전자책으로 출간되었습니다.
예스24 http://www.yes24.com/Product/Goods/71536932?scode=032&OzSrank=4
알라딘 https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=187404326
Leave [웹프로그래밍과 PHP] 4. 반복문(while,for) to:
Read more #kr posts
Best Posts From huti
We have not curated any of huti's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From huti
- [웹프로그래밍과 PHP] 4. 반복문(while,for)
- [웹프로그래밍과 PHP] 3. 조건문(if,if~elseif~else, ~?~:축약형)
- [웹프로그래밍과 PHP]2. PHP시작과 끝, 변수, 연결자, 주석
- [웹프로그래밍과 PHP] 1. PHP 동작 방식
- 악성코드 분석할 때 도움이 되는 Windows 레지스트리
- WebLogic이란?
- Oracle WebLogic RCE 취약점(CVE-2019-2725)
- 이태리 여행, 피렌체, 로마
- RPC Error? Broadcast Error?
- Spring Messaging RCE 취약점(CVE-2018-1270)
- 봄봄봄....JAVA Spring Framework란?
- phpmyadmin Local File Inclusion 취약점(CVE-2018-12613) 재분석
- 칼리!도커를해킹하다, 리디북스 IT 부분 베스트셀러 1위 기념 기록
- [정보보안 전문가의 기초 서적] 칼리! 도커를 해킹하다 -출간 소식
- Drupal RCE CVE-2018-7600 수정
- 사람을 중심에 두는 회의
- 공백기가 있었지만, 어느새 명성 50을 넘었네요.
- Florence Cupola
- [이탈리아_피렌체]12월 18일 피렌체
- phpmyadmin File Inclusion 취약점(CVE-2018-12613)