Edited by motorsep, 17 June 2012 - 12:46 AM.
Checkout confirmation exploit with Opera !
#1
Posted 17 June 2012 - 12:37 AM
#3
Posted 17 June 2012 - 10:29 PM
http://i062.radikal.ru/1206/c7/99e8f94bc005.png
http://s017.radikal.ru/i427/1206/80/7bf1e6b97b67.png
http://s019.radikal.ru/i637/1206/72/fb382df95632.png
So anyone can change the values because the data isn't passed to PayPal securely.
Edited by motorsep, 17 June 2012 - 10:39 PM.
#4
Posted 20 June 2012 - 01:42 AM
Long ago, this sort of thing (altering costs in a GET string) was something we were warned about in HTML class, that a fraudster could simply send their own GET string with their own numbers back to our server, and we needed to verify numbers (check price against the database price, etc.). It sounds like even with hidden POST data, that fraudsters have the capability to insert their own values as desired. The only way to avoid this would be for osC (at the server) to talk directly to PayPal, and not send anything through the browser. Is it done this way already? I would hope so, as it's been possible for a long time to save a page's HTML in a file, alter it (e.g., hidden POST fields), and presumably send it on. The alternative would be to require osC (server) to confirm the numbers before PayPal finalizes the transaction.
#5
Posted 22 June 2012 - 01:51 PM
I tried it on my sites, made an order of around £10.00, amended the amount to £0.01 prior to submission as described above.
The order was placed, the Paypal IPN gave a good result to the site, the order shows the correct value in admin and yet I only paid £0.01 for the order. - the only saving grace, is that the paypal IPN module I use kept the payment status at Pending as the full amount had not been received.
I can't comment on how paypal express or standard would deal with this, or for that matter any of the other payment modules
Is there any way to fix this? as I must admit I dont always check the order value to the paypal payment.
Thanks
If you want to see the mods I have installed, then see my profile.
#6
Posted 22 June 2012 - 02:31 PM
Thanks
If you want to see the mods I have installed, then see my profile.
#7 ONLINE
Posted 22 June 2012 - 02:51 PM
The regular checkout_process.php does not need this kind of hidden values, it takes fresh data from the order class
The only hidden field in checkout_confirmation.php is about the order comments.
So this is not a osCommerce problem in general, but a whole of some customization or addon
#8
Posted 22 June 2012 - 06:11 PM
Does anyone have an almost stock OSC 2.2 store I can try this on?
Thanks
If you want to see the mods I have installed, then see my profile.
#9
Posted 22 June 2012 - 06:23 PM
There is not a lot that can be done, other than to check the payment amount and the order mount are the same (manually).
Or, even better; don't use payment modules that use hidden form fields.
Edited by burt, 22 June 2012 - 06:23 PM.
Or maybe a ready made theme for your shop ??
Warning: My posts may contain Horsemeat.
#10
Posted 22 June 2012 - 06:39 PM
Looks like this is only with paypal payments - well on my sites anyway!
Thanks
If you want to see the mods I have installed, then see my profile.
#12
Posted 22 June 2012 - 06:45 PM
If you want to see the mods I have installed, then see my profile.
#14
Posted 22 June 2012 - 08:46 PM
~ viam supervadet vadens ~
#15
Posted 22 June 2012 - 09:07 PM
I wonder if this could be exploited on non osc sites - I may take a look at that....
If you want to see the mods I have installed, then see my profile.
#16
Posted 22 June 2012 - 09:16 PM
I just went to the OSC Sponsorship page, where I selected the 30 Euro option for sponsorship, displayed the hidden fields as shown below, and changed the 30 Euro to 1 Euro - sure enough when I pressed submit I was taken to paypal where I was being billed for 1 Euro.
So this is a problem / possible exploit for all sites using paypal
Attached Files
Edited by Mort-lemur, 22 June 2012 - 09:17 PM.
If you want to see the mods I have installed, then see my profile.
#17
Posted 22 June 2012 - 09:36 PM
But that is beyond me unless someone puts it in simple terms.
Thanks
If you want to see the mods I have installed, then see my profile.
#18
Posted 23 June 2012 - 08:17 AM
As for the osc shops, there is a setting in the paypal standard module: "enable encrypted web payments", I haven't had time yet to try/test this, but the solution may lie there. I believe you're also meant to request API credentials from your paypal account, go to profile>my selling tools>API access. I am not sure however where to enter the API certificate in shop admin, in fact in the paypal standard module we have "your private key", "your public certificate", "paypals public certificate", "your paypal public certificate ID".
If anyone knows how to set this up, please help.
~ viam supervadet vadens ~
#19
Posted 23 June 2012 - 09:39 AM
I knew I recalled something about encryption.
In essence, install openssl, create the "key", create the "public certificate" using the key
Login to your paypal and go;
profile > my selling preferences > encrypted payment settings" (it's right at the bottom of the page)
Click "add". Upload the PUBLIC cert you made. Follow the instructions.
Now you should have all the data/files needed to set the payments_standard to true.
Or maybe a ready made theme for your shop ??
Warning: My posts may contain Horsemeat.
#20
Posted 23 June 2012 - 11:28 AM
I'm probably missing something dead obvious but I am still not sure at all what needs to be installed and where.
I have downloaded my API credentials and was given an RSA private key and a certificate. I also found where to download Paypals public certificate. Is that the info that needs to be entered for encrypted payments?
~ viam supervadet vadens ~










