<NullPointerException> 二周目
Ir al canal en Telegram
898
Suscriptores
-124 horas
+27 días
+530 días
Archivo de publicaciones
20年后,你看着旁边睡着的水嫩嫩小姑娘,你对她的技术很满意,而且还是个四线小明星,内心打定主意再玩她个把月。
这时,她突然睁大秋波似水的眼睛问你:哥哥,你开阿斯顿马丁,你住地中海的千平大别墅,你是瑞士银行的顶级会员,连小国总统见了你都要给你三分薄面,你为什么会这么有钱?
此时,你点燃了一根雪茄,深深的吸了一口,雪茄过肺的刺激感让你有点想咳嗽,可你并不在意,思绪早就回到了2024年的那个冬天,那个你开出淬火661的时候。
Repost from 踹哈公寓
预编译这个东西很多人都听说过,每次问到sql注入怎么防御的时候大家都会来一句“使用预编译语句”,具体怎么写也不知道。然后某些记了俩菜名就在qq上蹦跶的带黑客似乎觉得,预编译就是个无敌的存在,sql语句只要这么处理了就没漏洞了。这个说法有道理但是不绝对。之前在审一些代码,尤其是php的时候我发现大多数出注入漏洞的预编译语句都有一种共同的思想,我编译我的,你注入你的。我写代码规定PDO,$pdo->quote($xxx)的时候我是你爹,传入个外部可控的转义字符串的时候经常就反转了,你是我爹。你要拿大哥刷经验,哥没意见,你要质疑大哥的实力,哥不高兴。我个人感觉预编译其实是最好审计出注入的,只要你追着变量一行一行跟进函数就行,反正总有一行什么query什么MB_userKey要出事,你预了你妈呢折腾半天还不如开局$id=$_GET['user_id']然后intval()算了,要死也死痛快点。(这玩意注入是注入不了但是容易正常用户卡bug,cjb开发写php的时候搞不清转换后的进制)
哦对,说回qq。phtml那个文件就不说了字面意思的杂种,满屏刀乐混着标签属性和√⑩缩进写得跟你妈小儿麻痹一样。原理其实网上也有很多文章分析过,扒拉了一个典型代码如图。GET方式获取user_id,然后一个try-catch 块,捕获异常,创建$pdo(这就是个例子别管什么root root弱口令)。然后他的预编译,$sql="select * from dvwa.users where user_id={$id}";正常的,预编译也预了。关键就是后面$row=一句,前面id变量是从 GET 请求中获取到的用户参数,外部可控,这里直接将结果赋值给变量 $row,没过滤,你预了个牛魔。占位符替代参数值,先编译,再传值,这三点都做对了才特么能叫真正的用预编译处理sql语句,否则就是个在第一行死和第十行死的问题
然后最经典的就来了,qq嗨黑搁那xjb嘴硬爆出了超级经典名言,“不同的数据库注入方法是不一样的,你这个说的是mysql,我用mssql或者sqlsever预编译你注入个啥?”
倭瓜说的,在快手和qq上搜黑客等于进了弱智吧,我是非常认可的。高情商:mssql和sqlsever的关系就像玛丽卡和拉达冈的关系一样。低情商:傻逼初中生啥都不会就会报菜名,听了一堆什么“sql注入不同的数据库注入方式不同”,“预编译防止注入”,“关系型数据库”,“mysql”,“mssql”,“sqlsever”就搁那报呢,连我用mssql或者sqlsever预编译这种逆天发言都出来了,一眼丁真,知道这个词然后压根不知道具体啥意思就开始给劲瞎扯名词。扫哥虽然技术含量上简单但是人家是真能日站有作用,啥都没学过的能不能就⑧瞎扯代码审计了爆些典出来笑死个人😅
