1. sqlmap os-shell的原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1. sqlmap os-shell的原理相关的知识,希望对你有一定的参考价值。

参考技术A sqlmap用来做sql注入的工具,有参数 os-shell.

很多的人会对os-shell的使用进行吐槽,这是得要多大的权限才能执行。是的,os-shell的执行条件有三个

(1)网站必须是root权限

(2)攻击者需要知道网站的绝对路径

(3)GPC为off,php主动转义的功能关闭

此处对于中小型企业,如果自己搭建的服务器,例如直接用wamp或者phpnow等快捷方式搭建的服务器,基本上可以满足以上三个条件.

HandlerThread原理与应用

参考技术A  在理解了Handler的原理之后,我们知道在一个子线程中创建一个Handler不能缺少了Looper.prepare()和Looper.loop()两个方法,具体的原因这里不再赘述,不熟悉原理的可以先看下另一篇文章 Handler的原理解析 .
本篇文章主要是讲解HandlerThread的使用的。
 首先HandlerThread是继承于Thread类的,所以本质上HandlerThread就是一个线程,接下来就详细的去看一看,这是怎样的一个线程?
 首先,先看下它的构造函数:

 既然是线程,那么最重要的当然是run方法来,看完了run方法,相信你也就明白HandlerThread的用途了!

 怎么样,这是不是和我们之前在子线程中创建Handler一样,首先是Looper.prepare(),接着是new Handler(), 最后是Looper.loop()。等等,这里并没有创建Handler啊!别急,我们先一步一步地看看run方法再说为什么没有创建Handler。

 通过查找发现到一个getLooper()的方法,该方法返回了当前线程的mLooper对象,还记得Looper是在哪里进行赋值的吗?在线程的run方法里,所以当线程启动之后才能创建Looper并赋值给mLooper,这里的阻塞就是为了等待Looper的创建成功。同时该方法是用Public修饰的,说明该方法是提供外部调用的,Looper创建成功提供给外部使用。

 最后在对象销毁前,调用下面的方法退出Looper循环

 quit方法实际是调用MessagQueue的removeAllMessagesLocked,移除所有延迟和非延迟的消息,
 quitSafely方法调用的是removeAllFutureMessagesLocked方法,该方法只清除延迟的消息,非延迟的消息
还是会进行分发处理。

 HandlerThread分析完啦,是不是有点蒙,自始至终都没有出现Handler,HandlerThread要怎么用呢?
 下面我们就通过一个Demo来说明下HandlerThread是怎么用的?

以上是关于1. sqlmap os-shell的原理的主要内容,如果未能解决你的问题,请参考以下文章

整理篇(sqlmap 源码分析os-shell 原理攻防角度使用sqlmap)

整理篇(sqlmap 源码分析os-shell 原理攻防角度使用sqlmap)

sqlmap注入及ms16-075提权总结

sql server inject使用动态查询执行sql语句实例

渗透测试工具之sqlmap

是否可以针对 ODBC 驱动程序连接使用 SQLMAP?