Penetration testing and low-cost freelancing
sophron.github.io
sophron.github.io
They might have hardcoded admin-level passwords for debugging, then forgotten about it.
They might have mis-typed HTTP headers like 'set-cookie', after having written manually a lot of auth & session management that should really be done using well-vetted libraries instead.
Back at my startup days, I once worked with a poor guy who was dynamically generating individual IDs for each element on a page and their corresponding CSS for each page. He was unaware that CSS also had _classes_, which perfectly encapsulated the behavior he was trying to create. His work was complex, and full of errors, but it had a certain logic to it- it was the path of least resistance that he saw available to him.
These don't look like that. They just look like weird errors designed to avoid showing up on, or triggering false positives on, DAST tools. I thinking testing people's skills without those tools is a good goal, i just think the methodology here is wrong.
That looks like what modern bigcorp webapps do, with random looking css class names that change every release.
I realize that in this scenario it is literally designed-in, but I understand the point the author is trying to prove. If a "scanner jokey" gets results that tells him or her there is SQL injection, a competent tester will try to verify what their tool is telling them. If the tester is doing that in this case, they'll find other injection strings not working and (hopefully) start looking under the hood to see what is going on and discover this pathological hard-coded pw and be able to tell the client that. Maybe it's the work of a malicious dev?
I agree that a pentester with a lot of experience will have skills that are honed to find common bug patterns, but it's nice to be able to find these seemingly bizarre issues and have an explanation for the client. It shows you really understood the app and what it's doing.
If they can manage to do this at any scale whatsoever, there is basically no downside, because there's a huge disconnect between the impact of a false negative (site breached, data stolen, etc.) and the impact to them (a 1-star review - even in your nightmare scenario as a customer, you still give them a score of 20%!)
1) A large number of the people who come to them will have actually produced secure code, so broken clock theory prevails, and there's no downside.
2) Another large subset will never generate enough interest among hackers to exploit their insecure code; a tree falls in the forest and no one hears it.
3) Another subset still will never know they've been breached and have cause to action.
4) If a company does learn they've been breached, they still must connect the dots to the failure of the pen tester.
5) And even then ... 1 star and some bad PR!
And of course if there were actual liabilities, they wouldn't be charging $35 on a freelance site.
A proper pentest includes manual labour (such as the mentioned examples). It also includes a lot of documentation in the report. For example, recon data. They could also include we checked X for Y but did not found any issues. Nothing is 100% secure, and if you don't find anything after extensive manual testing it is, well, going to be a boring report, because you still have to document everything. It also feels like a failure (which is why the honeypot was a little bit mean, though clever as well given goal of post).
CEH is a joke btw. No serious pentester puts that on their resume. Its a waste of time to get thst certificate. OSCP is the gold standard.
In short, you pay peanuts you get monkeys and CEH is a red flag. OSCP is a green flag.
In every org I've sat down with the head to explain those risks, I can see how it can be made priority and budget.
Edit: Followup - here is a primer method. The exact method differs if you are talking with leaders, or middle management, or space occupiers. (Leaders as in intelligent, aggressive forward thinkers). You have to make it personal, and show them how the thing that they care most about (eg: career, personal security, promotion, or liability exposure) is at risk; which now-a-days is a true statement.
That is my experience, it may not be others.
These operators have no incentive to invest in proper skills. So they don't. They can charge almost anything they like. And sure enough, they do.
In an industry with such massive vendor lock-ins and regulatory capture regimes, organisationally you get to shovel a lot of money for sub-par pentests. The appetite to have yet another one, even from a known-good and reasonably priced provider, is quite hard to come by. After all, these approved providers will REFUSE to even look at a third-party pentest report, let alone let one guide their own testing.
So in aggregate the existence of these approved providers and their level of competence degrades the security posture of entire business domains.
Macchiavelli would have been proud.
Most 'security guys' are not hackers. They do not have CS degrees and are not curious at all. Rather, they are 8 to 5 office workers that are compliance and risk oriented. They run automated vulnerability scanners (that are largely useless and filled with false positives based on the version string of Apache). They submit reports to management where they discuss how to make the 'red' things 'green' to impress the Board.
Real hackers are very curious about technology and like to see how they can break things or make things do something that they were not intended to do. That's how they find bugs.
Two totally different worlds. One is focused on 'compliance and risk and loss prevention insurance policies' (basically CYA) while the other is focused on actually being technically secure by trying to break things before the bad hacker comes along and does so.
I've always been curious about costs for real pentesting. 1-100k is a HUGE range, that can't mean the range in cost for the same project can be that big, can it? What's it cost to hire someone to run a decent set of tests on a Rails app, for instance? Could I really see that big of a range? Would I get way better results for for $100k?
You should get significantly better results the more one pays - because of the human element.
For example, $1k gets you a basic Nessus/Nmap (basic vulnerability/mapping) scans, maybe SQL vuln, with automated reporting. More gets you architecture, infrastructure, penetration, white/black scenarios, risk assessment, external organization liability, code repo, data, compliance, and regulatory footing. Those can surpass $100k easily.
And these issues look more like CTF style issues than real world security issues. If you're not thinking about the challenge in the right way, it is probably harder to see the vulnerabilities.
Because for most people its not about security, its about liability and having a proven attempt at trying to "security" implies in their minds that they are not liable.
Sadly security is a mindset and a process like healthy eating but we socially model it as a eating a single apple which translates to hiring one person for less than $100 and taking what they say as authority.
I can kind of get behind the malformed header. But I have very hard time thinking up any suite of actions that would lead to a code resulting in leaked obfuscated query with a hard coded password. All while password somehow using a LIKE statement matching a sql injection.
Is there any precedent for this?
Edit: rewrote my sentence because it was barely readable.
As a result, those systems are typically harder to maintain or secure by just anybody, even by some experts who are not from the NIH mindset (here's where the author's approach isn't really fair, IMO). Proprietary systems are are less likely to present the typical bell curve security issues that an automated scanner would pick up.
What they are more vulnerable to is puzzle logic--the "what's going on here, hmm let's have a tinker" approach. Which is exactly what the author presented and it also matches his broader approach of "let's have a tinker...with freelancers".
It's a subjective security vs. objective security approach. Both sides are important. But both sides should know about how the other side works.
The same is happening in the "smart contract audit" space. The results of the audit do not matter to the audience that wants to see the checkbox of "audit".
You can currently make a lot of money undercutting other auditors providing these audits.
The person requesting the audit is making multiple orders of magnitude more money by having the audit.
https://ostif.org/four-audits-of-randomx-for-monero-and-arwe...
This is what I'm giving to clients who have unreasonable expectation that all vulns should be found during an assessment. The usually "time boxed" nature of this sort of work does allows for 1.5 sigma when many companies always expect 3 sigma coverage.
If I'm not familiar with pentesting methodologies, my only metric of satisfaction would be the pen tester's reputation i.e., if a well-reviewed pentester says my site is OK, then maybe my site is safe.
The business often gets in my way with budgets. I can spend it all on some strange behavior that I detect in the application. I like to spend my time like that. The more experience I get the more time I could spend, even on simple applications. The rabbit hole goes ever deeper.
When am I satisfied that I delivered good work? When I find a number of high impact vulnerabilities. Doesn't mean there aren't still more to be found, like I said you could go on and on, but it does mean that I fixed some bad. Sadly I have a fixed budget, and sometimes I find nothing, those are bad days.
In my experience customers are also satisfied with a report that contains few or no impactful findings. But an empty report is no guarantee that there really isn't anything to be found.
It's difficult to balance the desire to dive deep and to provide broad coverage. I once got bit by that.
I found and clearly documented no less than 3 absolutely critical issues (price adjustment in an e-commerce website). Felt pretty good about that test. Until, in production, someone else found an additional authentication bypass. Oops. I wasn't focused on that due the aforementioned input validation issues and got blinded by trying to find more of those. It's not easy.
These are also the people who keep Walmart alive. They have limited reasoning ability, and even if they might suspect it's too cheap to be any good, they want it to be good enough and are willing to pretend that it is. These happen to also be the people who easily accept absurd and obviously false statements made by certain political leaders.
I know quite a few of these people, and I have tried countless times to advise them on reasonable choices, but it is like talking to a wall (if a wall could nod and pretend to agree).
How in the world could that happen?
Edit: I guess it could happen if a developer decided to debug SQL via http response which seems pretty insane
Broken exception handling, for one.
The "reports" are absolutely hilarious. Even better, the blog post "analysis" is worse than the pen-test reports.
I'll trust them on that claim. But is my $100 getting me an industry-certified analysis?
I could hire a licensed MD Engineer Pharmacist Cosmetologist Veterinarian to walk my dog for me, but I don't expect them to perform heart surgery for $100
"This one weird X" is a common clickbait pattern, and indeed, in this case, it is misleading: the article's descriptions of the purposely-introduced "weird" vulnerabilities aren't useful, only the freelance test results are.