2016-11-23 3 views
1

현재 로컬 호스트 웹 응용 프로그램에서 SQL 주입을 연습하고 있습니다. 성공적으로 수행하려면 값을 SELECT을 사용하여 명령문에 반환해야합니다. 나는 사용자의 암호를 변경하려고 해요 :테이블을 업데이트하고 하나의 명령문에서 테이블을 선택하는 방법이 있습니까?

changepwd', (UPDATE mysql.user SET authentication_string=PASSWORD('new password') 
      WHERE user='root' UNION SELECT authentication_string from mysql.user)) # 

SQL 주입하면이 ;을 사용할 수 없습니다. 그 예제에서 UNION을 시도해 보았지만 작동 여부는 알 수 없었습니다. 내가 시도 할 수있는 다른 아이디어?

+0

이것은 Postgres에서 매우 쉽습니다. 어떤 DBMS를 사용하고 있습니까? –

+0

나는 – Reckope

답변

0

이 질문에 대한 답변은 here입니다.

요약하면 대답은 저장 프로 시저입니다.

+0

을 사용하고 있는데 일반적으로이 방법을 사용하고 있지만 SQL 주입에 대해 묻기 때문에 SP 생성은 옵션이 아닙니다. –

+0

그러면 주입하고 프로 시저를 호출 할 수 있습니까? 아마도 구분 기호를 변경하고 여러 호출을 실행하는 것입니다. (가능한지, 테스트하지 않았는지는 모르겠다.) –

관련 문제