phpinfo lfi 上传shell
0x00 基本原理建议阅读参考文章1的pdf,基本都是根据那篇文章进行分析的,这里单纯记录下我实验过程。 任意php文件都会处理一个上传请求,上传文件都会被暂时存储在一个临时目录下面。直到php页面完全处理完请求。 In particular he notes that if file_uploads = on is set in the PHP configuration file, then PHP will accept a file upload post to any PHP file. He also notes that the upload file will be stored in the tmp location, until the requested PHP pa ...
阅读更多
docker remote api 未授权访问
0x00 前言学习下这个Docker remote api漏洞,具体细节请参考http://drops.wooyun.org/papers/15892。 这里记录下我的实验过程,值得学习~~ 0x01 环境配置先关闭docker,然后开启: 12sudo service docker stopsudo docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 绑定Docker Remote Api在指定端口(这里是2375),可以自行测试。 参考API规范进行渗透:https://docs.docker.com/engine/reference/api/docker-remote-api-v1.23/ 操作Dock ...
阅读更多
wechall writeup(1)
order by query PHP看关键代码: 1234567if (!in_array($orderby, $whitelist)) { return htmlDisplayError('Error 1010101: Not in whitelist.');}$orderby = $db->escape($orderby);$query = "SELECT * FROM users ORDER BY $orderby $dir LIMIT 10"; 这里有个php trick: 12345$names = array(1 => 'Username', 3 => 'Apples', 4 => 'Bananas', 5 => ' ...
阅读更多
近期CTF相关总结
记录下最近CTF题目中的相关技术,CTF比赛越来越多了。 HCTF2016injection (xpath injection)xpath注入题目,源码之后得到是这样的: 1234567891011121314if(file_exists('t3stt3st.xml')) { $xml = simplexml_load_file('t3stt3st.xml'); $user=$_GET['user']; $user=str_replace($re, ' ', $user); // $user=str_replace("'", "&apos", $user); $query="user/username[@name='".$user."']"; ...
阅读更多
Docker搭建nginx php mysql环境
0x00 准备工作下载所需要的镜像,推荐注册daocloud,配置下可以加速下载Docker Hub上的镜像。 123dao pull nginx:1.8dao pull php:5.6.19-fpmdao pull mysql:5.5.48 下载完后,sudo docker images: 1234REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEmysql 5.5.48 2805299e41bf 3 days ...
阅读更多
XStream反序列化组件攻击分析
0x00 XStream组件功能 XStream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换。 值得注意的是: 它转换对象时,不需要对象继承Serializable接口。 这极大的方便了反序列化攻击。 XStream简单序列化代码如下: 12345678910111213141516171819202122232425@Testpublic void testWriter(){ Person person = new Person(); //Set the properties using the setter methods //Note: This can also be done w ...
阅读更多
SSCTF2016总结writeup
crypt01思路: 解密,python 源码: 123456789101112131415161718192021222324252627282930313233343536373839404142434445def LShift(t, k): k %= 8 return ((t << k) | (t >> (8 - k))) & 0xffdef encode(p): ret = "" for i in range(8): ret = ('|' if (p >> i) & 1 else 'O') + ret return retA = [85, 128, 177, 163, 7, 242, 23 ...
阅读更多
java反序列化漏洞原理分析
0x00 反序列化原理1.从java序列化机制谈起 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存中新建对象。整个过程都是Java虚拟机(JVM)独立的,也就是说,在一个平台上序列化的对象可以在另一个完全不同的平台上反序列化该对象。类ObjectInputStream 和ObjectOutputStream是高层次的数据流,它们包含序列化和反序列化对象的方法。 java序列化是将我们的java对象封装成静态二进制格式,这样就适合存储在磁盘上或 ...
阅读更多
java反序列化漏洞URLClassLoader利用
0x00 回显思路和原理这里使用JBoss漏洞实现回显进行说明。 使用java.net.URLClassLoader类,远程加载自定义类(放在自己服务器上的class文件),可以自定义方法执行。 在自定义类中,抛出异常,使其成功随着Jboss报错返回命令执行结果。 0x01 payload写法 构造URLClassLoader执行链12345678910111213141516171819202122232425262728Transformer[] transformers = new Transformer[] { new ConstantTransformer(java.net.URLClassLoader.class), new Invo ...
阅读更多
Joomla远程代码执行漏洞利用分析
0x00 漏洞简介 影响版本:from Joomla 1.5 up until 3.4.5 漏洞类型:php 反序列化造成的对象注入 漏洞触发:将session插入数据库中,发送同样的数据包来取出session,触发漏洞,执行任意代码 0x01 利用分析在看完这两篇漏洞分析文章后,对里面分析利用进行了下总结。乌云的分析: http://drops.wooyun.org/papers/11330百度安全团队的分析: http://xteam.baidu.com/?p=379 细致看底层原理可以看看百度安全团队的分析。想了解攻击步骤,请看乌云的分析。乌云上提到的生成payload代码只是一部分,我改了改,可以用以下代码生成第一步攻击payload: 1234567891011121314151 ...
阅读更多