You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jul 8, 2024. It is now read-only.
A code execution vulnerability in controllers.cms.CMS.searchContent allows an attacker to unconditionally execute system commands.
The relevant code is as follows.
After code audit, in order to get here, the following three parameters need to be passed: pwd, rule, wd.
The pwd parameter must be verified with js0_password = lsg.getItem('JS0_PASSWORD', cfg.get('JS0_PASSWORD', '')). If they are consistent, you can go down. Otherwise, it will exit and report 403.
The rule parameter must be checked against the rules in rule_list to pass, otherwise it will exit.
The wd parameter is the payload to be passed in.
Obtain all fields that can query storage_service through the /info route, including JS0_PASSWORD
For the rule parameter, you only need to ensure that it exists in rule_list. You can get the rule list by accessing the /rules/view route. You can select one of several rules. The one selected here is AnFuns.
The last is the wd parameter, because the vulnerability code is like this,
A code execution vulnerability in
controllers.cms.CMS.searchContent
allows an attacker to unconditionally execute system commands.The relevant code is as follows.
After code audit, in order to get here, the following three parameters need to be passed: pwd, rule, wd.
![image](https://private-user-images.githubusercontent.com/40927099/290761996-8d3c2578-fc56-4699-ae22-a699e8eff049.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTIwODUsIm5iZiI6MTczODk1MTc4NSwicGF0aCI6Ii80MDkyNzA5OS8yOTA3NjE5OTYtOGQzYzI1NzgtZmM1Ni00Njk5LWFlMjItYTY5OWU4ZWZmMDQ5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE4MDk0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJkZmE1MGI3ZjhiMTVmODFiMWZiN2JkNmYwNGZmZjhiMDdlNTdiYzIyMzkyZmM0MzE0OGM0NTQ4NWZmY2JmNzgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.CuvEfjhh7ml0dRHG2ieGTPashxSBN7O326uXuoLTQ10)
The pwd parameter must be verified with
js0_password = lsg.getItem('JS0_PASSWORD', cfg.get('JS0_PASSWORD', ''))
. If they are consistent, you can go down. Otherwise, it will exit and report 403.The rule parameter must be checked against the rules in rule_list to pass, otherwise it will exit.
The wd parameter is the payload to be passed in.
Obtain all fields that can query
storage_service
through the/info
route, includingJS0_PASSWORD
For the rule parameter, you only need to ensure that it exists in
![image](https://private-user-images.githubusercontent.com/40927099/290762126-78e631dd-6bf8-41bb-a447-3a250774d9d3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTIwODUsIm5iZiI6MTczODk1MTc4NSwicGF0aCI6Ii80MDkyNzA5OS8yOTA3NjIxMjYtNzhlNjMxZGQtNmJmOC00MWJiLWE0NDctM2EyNTA3NzRkOWQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE4MDk0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVmYWViNmQzODRmNjdhNTE3NmM5YWFkYjNmNGJiOGE5Y2Q4YWJiYTkyZTM0Njk5NTNhYjhiNzhhZWU1MTgwNTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ztKQniY-kOXgqDAL7QVf-eXWD-fSR_GSQSfxxEKyCOw)
rule_list
. You can get the rule list by accessing the/rules/view
route. You can select one of several rules. The one selected here isAnFuns
.The last is the wd parameter, because the vulnerability code is like this,
So you need to put the actual payload in () brackets, the request is as follows.
The text was updated successfully, but these errors were encountered: