By 'anonymous user', do you mean 'unauthenticated user'? If so, then you have two options (#1 and #2 below). If not, then you have one option (#1 below). All of this assumes, of course, that you cannot persuade the uploader himself to modify the ACLs on these objects.
delete the objects. As the bucket owner, you can always delete objects (and stop paying for them).
become the object owner and grant the bucket owner (you) full control. Anyone can be the unauthenticated user and hence the object owner.
Here is an example of how to do #2 for bkt/cat.jpg using node.js and the AWS JavaScript SDK. This code invokes putObjectAcl as the unauthenticated user and gives the bucket owner (you) full control over the object.
var aws = require('aws-sdk');
var s3 = new aws.S3();
var p = { Bucket: 'bkt', Key: 'cat.jpg', ACL: 'bucket-owner-full-control' };
s3.makeUnauthenticatedRequest('putObjectAcl', p, function(e,d) {
if (e) console.log('err: ' + e);
if (d) console.log('data: ' + d);
});
Unfortunately, the awscli does not appear to support unauthenticated S3 calls otherwise I would have proposed using that to modify the ACLs of the object.
Note that the canned ACL of bucket-owner-full-control gives both the object owner and the bucket owner full control.